Hướng dẫn get integer from string python - lấy số nguyên từ chuỗi 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 trích xuất một số nguyên từ một chuỗi trong Python?

Vấn đề này có thể được giải quyết bằng cách sử dụng chức năng phân chia để chuyển đổi chuỗi thành danh sách và sau đó danh sách hiểu có thể giúp chúng tôi lặp qua chức năng danh sách và isDigit giúp loại bỏ chữ số ra khỏi chuỗi.using split function to convert string to list and then the list comprehension which can help us iterating through the list and isdigit function helps to get the digit out of a string.

Làm thế nào để bạn có được một số nguyên từ một chuỗi?

Chuỗi Java sang Int - Cách chuyển đổi chuỗi thành số nguyên..
Sử dụng Integer.parseInt [] để chuyển đổi chuỗi thành số nguyên.Phương thức này trả về chuỗi dưới dạng loại nguyên thủy int.....
Sử dụng Integer.valueof [] để chuyển đổi chuỗi thành số nguyên.Phương thức này trả về chuỗi dưới dạng đối tượng số nguyên ..

%S %d trong python là gì?

Chúng được sử dụng để định dạng chuỗi.%s hoạt động một trình giữ chỗ cho một chuỗi trong khi %D hoạt động như một trình giữ chỗ cho một số.Các giá trị liên quan của chúng được truyền qua thông qua một tuple bằng toán tử %.acts as a placeholder for a number. Their associated values are passed in via a tuple using the % operator.

Làm thế nào để bạn tìm thấy giá trị số nguyên trong Python?

Kiểm tra xem một số là số nguyên hoặc thập phân trong Python..
Kiểm tra xem đối tượng là int hoặc float: isInstance [].
Kiểm tra xem Float có phải là số nguyên không: is_integer [].
Kiểm tra xem chuỗi số có phải là số nguyên không ..

Bài Viết Liên Quan

Chủ Đề