Hướng dẫn how to get only integer value in python - làm thế nào để chỉ nhận được giá trị số nguyên trong python

Giả sử tôi đã có một chuỗi

string1 = "498results should get" 

Bây giờ tôi cần chỉ nhận các giá trị số nguyên từ chuỗi như

string2 = "49867results should get" 
string3 = "497543results should get" 
8. Ở đây tôi không muốn sử dụng
string2 = "49867results should get" 
string3 = "497543results should get" 
9 vì các giá trị số nguyên có thể tăng như sau các ví dụ:

string2 = "49867results should get" 
string3 = "497543results should get" 

Vì vậy, tôi muốn chỉ lấy các giá trị số nguyên từ chuỗi chính xác theo cùng một thứ tự. Ý tôi là

>>> import re
>>> string1 = "498results should get"
>>> int[re.search[r'\d+', string1].group[]]
498
0 từ
>>> import re
>>> string1 = "498results should get"
>>> int[re.search[r'\d+', string1].group[]]
498
1 tương ứng.

Bất cứ ai có thể cho tôi biết làm thế nào để làm điều này trong một hoặc hai dòng?

hỏi ngày 5 tháng 7 năm 2012 lúc 6:55Jul 5, 2012 at 6:55

0

>>> import re
>>> string1 = "498results should get"
>>> int[re.search[r'\d+', string1].group[]]
498

Nếu có nhiều số nguyên trong chuỗi:

>>> map[int, re.findall[r'\d+', string1]]
[498]

Đã trả lời ngày 5 tháng 7 năm 2012 lúc 6:57Jul 5, 2012 at 6:57

6

Đây là một lớp lót của bạn, mà không cần sử dụng bất kỳ biểu thức thông thường nào, đôi khi có thể trở nên đắt đỏ:

>>> ''.join[filter[str.isdigit, "1234GAgade5312djdl0"]]

returns:

'123453120'

Đã trả lời ngày 17 tháng 11 năm 2016 lúc 18:54Nov 17, 2016 at 18:54

BobortbobortBobort

2.99031 Huy hiệu bạc39 Huy hiệu đồng31 silver badges39 bronze badges

Nếu bạn có nhiều bộ số thì đây là một tùy chọn khác

>>> import re
>>> print[re.findall['\d+', 'xyz123abc456def789']]
['123', '456', '789']

Nó không tốt cho chuỗi số điểm nổi mặc dù.

Đã trả lời ngày 24 tháng 5 năm 2016 lúc 11:07May 24, 2016 at 11:07

Jacanterburyjacanterburyjacanterbury

1.3451 Huy hiệu vàng24 Huy hiệu bạc33 Huy hiệu đồng1 gold badge24 silver badges33 bronze badges

Phiên bản Iterator

>>> import re
>>> string1 = "498results should get"
>>> [int[x.group[]] for x in re.finditer[r'\d+', string1]]
[498]

Đã trả lời ngày 5 tháng 7 năm 2012 lúc 7:02Jul 5, 2012 at 7:02

John La Rooyjohn La RooyJohn La Rooy

Phù bằng vàng 287K5151 gold badges359 silver badges500 bronze badges

>>> import itertools
>>> int[''.join[itertools.takewhile[lambda s: s.isdigit[], string1]]]

Đã trả lời ngày 5 tháng 7 năm 2012 lúc 7:06Jul 5, 2012 at 7:06

Craig Citrocraig CitroCraig Citro

6.4171 Huy hiệu vàng 30 Huy hiệu bạc28 Huy hiệu Đồng1 gold badge30 silver badges28 bronze badges

4

Với Python 3.6, hai dòng này trả về một danh sách [có thể trống]

>>[int[x] for x in re.findall['\d+', your_string]]

Tương tự như

string2 = "49867results should get" 
string3 = "497543results should get" 
0

Đã trả lời ngày 16 tháng 5 năm 2018 lúc 15:50May 16, 2018 at 15:50

huseyin39huseyin39huseyin39

1.34312 Huy hiệu bạc17 Huy hiệu đồng12 silver badges17 bronze badges

Cách tiếp cận này sử dụng danh sách hiểu, chỉ cần chuyển chuỗi làm đối số cho hàm và nó sẽ trả về một danh sách các số nguyên trong chuỗi đó.

string2 = "49867results should get" 
string3 = "497543results should get" 
1

Như thế này

string2 = "49867results should get" 
string3 = "497543results should get" 
2

Đầu ra

string2 = "49867results should get" 
string3 = "497543results should get" 
3

Đã trả lời ngày 5 tháng 7 năm 2021 lúc 5:34Jul 5, 2021 at 5:34

string2 = "49867results should get" 
string3 = "497543results should get" 
4

Jochenjung

7.12312 Huy hiệu vàng64 Huy hiệu bạc108 Huy hiệu Đồng12 gold badges64 silver badges108 bronze badges

Đã trả lời ngày 30 tháng 10 năm 2017 lúc 15:20Oct 30, 2017 at 15:20

2

Một tùy chọn khác là xóa dấu ngoặc bằng các chữ cái bằng cách sử dụng

>>> import re
>>> string1 = "498results should get"
>>> int[re.search[r'\d+', string1].group[]]
498
2 và
>>> import re
>>> string1 = "498results should get"
>>> int[re.search[r'\d+', string1].group[]]
498
3 [để lấy các chữ cái]:

string2 = "49867results should get" 
string3 = "497543results should get" 
5

Output:

string2 = "49867results should get" 
string3 = "497543results should get" 
6

string2 = "49867results should get" 
string3 = "497543results should get" 
7

Đã trả lời ngày 29 tháng 10 lúc 14:05Oct 29 at 14:05

Làm thế nào để bạn có được một số nguyên từ một danh sách trong Python?

Cách pythonic nhất để chuyển đổi danh sách các chuỗi thành danh sách INTS là sử dụng danh sách hiểu [int [x] cho x trong chuỗi].Nó lặp lại trên tất cả các phần tử trong danh sách và chuyển đổi từng phần tử danh sách X thành giá trị số nguyên bằng hàm tích hợp int [x].use the list comprehension [int[x] for x in strings] . It iterates over all elements in the list and converts each list element x to an integer value using the int[x] built-in function.

Int input []] trong python là gì?

Với đầu vào [int []] bạn đang sử dụng int [] làm lời nhắc cho đầu vào của người dùng.Vì bạn không vượt qua int [] một đối số, nó trả về số 0.Trong trường hợp của bạn, đầu ra của đầu vào [int] là chuỗi '12' nhưng đầu ra của int [input []] là số nguyên 12.using int[] as a prompt for the user input. Since you don't pass int[] an argument, it returns zero. In your case, the output of input[int] is the string '12' but the output of int[input[]] is the integer 12.

Bài Viết Liên Quan

Chủ Đề