Cách lấy số nguyên từ chuỗi trong python

Xin chào độc giả. Trong bài viết này, chúng tôi sẽ tập trung vào các cách trích xuất các chữ số từ Chuỗi Python. Vì vậy, chúng ta hãy bắt đầu


1. Sử dụng hàm isdigit() để trích xuất các chữ số từ chuỗi Python

Python cung cấp cho chúng tôi

Original String : Python4Journaldev
Extracted numbers from the list : 4
3 để kiểm tra sự hiện diện của các chữ số trong một chuỗi

Hàm isdigit() trong Python trả về True nếu chuỗi đầu vào chứa các ký tự chữ số trong đó

cú pháp

string.isdigit()

Chúng ta không cần truyền bất kỳ tham số nào cho nó. Là một đầu ra, nó trả về Đúng hoặc Sai tùy thuộc vào sự hiện diện của các ký tự chữ số trong một chuỗi

ví dụ 1

inp_str = "Python4Journaldev"

print("Original String : " + inp_str) 
num = ""
for c in inp_str:
    if c.isdigit():
        num = num + c
print("Extracted numbers from the list : " + num) 

Trong ví dụ này, chúng tôi đã lặp lại ký tự chuỗi đầu vào theo ký tự bằng cách sử dụng vòng lặp for. Ngay khi hàm isdigit() gặp một chữ số, nó sẽ lưu nó vào một biến chuỗi có tên là ‘num’

Do đó, chúng ta thấy đầu ra như hình dưới đây–

đầu ra

Original String : Python4Journaldev
Extracted numbers from the list : 4

Giờ đây, chúng ta thậm chí có thể sử dụng khả năng hiểu danh sách Python để ghép hàm lặp và hàm idigit() thành một dòng

Bằng cách này, các ký tự chữ số được lưu vào danh sách 'num' như hình bên dưới

ví dụ 2

inp_str = "Hey readers, we all are here be 4 the time!"


print("Original string : " + inp_str) 


num = [int(x) for x in inp_str.split() if x.isdigit()] 

 
print("The numbers list is : " + str(num)) 

đầu ra

Original string : Hey readers, we all are here be 4 the time!
The numbers list is : [4]


2. Sử dụng thư viện regex để trích xuất các chữ số

Thư viện biểu thức chính quy của Python được gọi là ‘thư viện regex‘ cho phép chúng tôi phát hiện sự hiện diện của các ký tự cụ thể như chữ số, một số ký tự đặc biệt, v.v. từ một chuỗi

Chúng ta cần nhập thư viện regex vào môi trường python trước khi thực hiện bất kỳ bước nào tiếp theo

import re

Hơn nữa, chúng tôi, chúng tôi

Original String : Python4Journaldev
Extracted numbers from the list : 4
4 để trích xuất các ký tự chữ số từ chuỗi. Phần ‘\d+’ sẽ giúp hàm findall() phát hiện sự hiện diện của bất kỳ chữ số nào

Ví dụ

import re
inp_str = "Hey readers, we all are here be 4 the time 1!"


print("Original string : " + inp_str) 

num = re.findall(r'\d+', inp_str) 

print(num)

Vì vậy, như được thấy bên dưới, chúng ta sẽ nhận được một danh sách tất cả các ký tự chữ số từ chuỗi

đầu ra

Original string : Hey readers, we all are here be 4 the time 1!
['4', '1']


Phần kết luận

Đến đây, chúng ta đã đi đến cuối chủ đề này. Vui lòng bình luận bên dưới, trong trường hợp bạn gặp bất kỳ câu hỏi nào

Tôi khuyên tất cả các bạn nên thử triển khai các ví dụ trên bằng cách sử dụng các cấu trúc dữ liệu như danh sách, dict, v.v.

Nếu bạn có một chuỗi chứa các số và bạn muốn lấy các số đó ra, bạn có thể sử dụng các hàm tích hợp Python int(), isdigit() để trích xuất các giá trị số nguyên từ chuỗi. Trong bài đăng này, chúng tôi sẽ chỉ cho bạn nhiều phương pháp để làm điều đó

đầu ra

________số 8

Giải pháp 1. Sử dụng split(), isdigit() và hiểu Danh sách

Đưa ra một chuỗi, nhiệm vụ là chỉ trích xuất các số nguyên từ chuỗi và in chúng. Điều này có thể được thực hiện bằng cách sử dụng phương thức split() và isdigit(). Phương thức split() trả về một danh sách các chuỗi con được phân tách bằng một dấu phân cách nhất định. Phương thức isdigit() trả về True nếu tất cả các ký tự trong chuỗi là chữ số và có ít nhất một ký tự, ngược lại là False

Khả năng hiểu danh sách có thể được sử dụng để lặp lại danh sách được trả về bởi phương thức split() và phương thức isdigit() để kiểm tra xem mỗi chuỗi con có phải là một chữ số hay không. Nếu nó là một chữ số, thì nó có thể được thêm vào danh sách. Cuối cùng, danh sách các số nguyên có thể được in

Mã ví dụ 1

my_str = "There are 10 rabbits, 50 dogs and 20 cats in this area 52"

result = [int(x) for x in my_str.split() if x.isdigit()]

print(result)

đầu ra

inp_str = "Python4Journaldev"

print("Original String : " + inp_str) 
num = ""
for c in inp_str:
    if c.isdigit():
        num = num + c
print("Extracted numbers from the list : " + num) 

0

Đoạn mã trên đặt biến my_str thành một chuỗi chứa số và từ. Sau đó, nó sử dụng khả năng hiểu danh sách để tạo một danh sách mới, kết quả, chỉ chứa các số từ my_str, được chuyển đổi thành số nguyên. Cuối cùng, nó in nội dung của kết quả

Mã ví dụ 2. không sử dụng split() - Điều này có thể hữu ích khi bạn không có khoảng trắng giữa số và từ

inp_str = "Python4Journaldev"

print("Original String : " + inp_str) 
num = ""
for c in inp_str:
    if c.isdigit():
        num = num + c
print("Extracted numbers from the list : " + num) 

1

đầu ra

inp_str = "Python4Journaldev"

print("Original String : " + inp_str) 
num = ""
for c in inp_str:
    if c.isdigit():
        num = num + c
print("Extracted numbers from the list : " + num) 

2

Giải pháp 2. Sử dụng vòng lặp For

Chúng ta cũng có thể sử dụng vòng lặp Python For để lặp qua các từ và ký tự của chuỗi và có thể trích xuất các giá trị nguyên từ nó. Dưới đây là một số ví dụ mã sẽ giúp bạn hiểu nó

Ví dụ 1. Sử dụng vòng lặp for và split

inp_str = "Python4Journaldev"

print("Original String : " + inp_str) 
num = ""
for c in inp_str:
    if c.isdigit():
        num = num + c
print("Extracted numbers from the list : " + num) 

3

đầu ra

inp_str = "Python4Journaldev"

print("Original String : " + inp_str) 
num = ""
for c in inp_str:
    if c.isdigit():
        num = num + c
print("Extracted numbers from the list : " + num) 

0

ví dụ 2. Không sử dụng hàm split()

inp_str = "Python4Journaldev"

print("Original String : " + inp_str) 
num = ""
for c in inp_str:
    if c.isdigit():
        num = num + c
print("Extracted numbers from the list : " + num) 

5

đầu ra

inp_str = "Python4Journaldev"

print("Original String : " + inp_str) 
num = ""
for c in inp_str:
    if c.isdigit():
        num = num + c
print("Extracted numbers from the list : " + num) 

6

ví dụ 3

inp_str = "Python4Journaldev"

print("Original String : " + inp_str) 
num = ""
for c in inp_str:
    if c.isdigit():
        num = num + c
print("Extracted numbers from the list : " + num) 

7

đầu ra

inp_str = "Python4Journaldev"

print("Original String : " + inp_str) 
num = ""
for c in inp_str:
    if c.isdigit():
        num = num + c
print("Extracted numbers from the list : " + num) 

2

Giải pháp 3. Sử dụng hàm findall() của mô-đun regex re

Mô-đun re trong python có hàm findall() có thể được sử dụng để trích xuất các giá trị số nguyên từ một chuỗi. Hàm findall() trả về danh sách tất cả các kết quả phù hợp mà nó tìm thấy. Chuỗi có thể là chuỗi ký tự hoặc biểu thức chính quy. Nếu bạn chỉ muốn trích xuất các số nguyên dương, bạn có thể sử dụng biểu thức chính quy sau. [1-9][0-9]*

my_str = "There are 10 rabbits, 50 dogs and 20 cats in this area 52"

result = [int(x) for x in my_str.split() if x.isdigit()]

print(result)
1

đầu ra

my_str = "There are 10 rabbits, 50 dogs and 20 cats in this area 52"

result = [int(x) for x in my_str.split() if x.isdigit()]

print(result)
2

Trong ví dụ mã trên

  1. Dòng đầu tiên nhập mô-đun 're' cung cấp các công cụ biểu thức chính quy
  2. Dòng thứ hai định nghĩa một biến chuỗi gọi là mystr
  3. Dòng thứ ba sử dụng hàm findall() từ mô-đun 're' để tìm tất cả các trường hợp có một hoặc nhiều chữ số trong chuỗi và lưu trữ chúng trong biến 'kết quả'
  4. Dòng thứ tư chuyển đổi biến 'kết quả' từ danh sách chuỗi thành danh sách số nguyên
  5. Dòng thứ năm in danh sách các số nguyên mới

Sử dụng hàm filter(), map() và isdigit()

Trong Python, phương thức isdigit() dùng để kiểm tra xem chuỗi đã cho có phải là chữ số hay không. Hàm này được sử dụng cùng với các hàm map() và filter() để chỉ trích xuất các giá trị số nguyên từ một chuỗi. Hàm map() áp dụng hàm isdigit() cho từng phần tử của iterable đã cho (i. e. danh sách, bộ dữ liệu, v.v. ) và trả về danh sách kết quả. Hàm filter() lọc khả năng lặp đã cho bằng cách loại bỏ các phần tử mà phương thức isdigit() trả về Sai

Vì vậy, để chỉ trích xuất các giá trị số nguyên từ một chuỗi, chúng ta cần sử dụng các hàm map() và filter() cùng với phương thức isdigit()

my_str = "There are 10 rabbits, 50 dogs and 20 cats in this area 52"

result = [int(x) for x in my_str.split() if x.isdigit()]

print(result)
3

đầu ra

my_str = "There are 10 rabbits, 50 dogs and 20 cats in this area 52"

result = [int(x) for x in my_str.split() if x.isdigit()]

print(result)
4

Trong ví dụ mã trên, hàm map() áp dụng hàm int cho mọi phần tử trong danh sách my_str. Hàm bộ lọc kiểm tra xem mọi phần tử trong danh sách my_str có phải là một chữ số hay không và trả về một danh sách chỉ gồm các phần tử chữ số. Cuối cùng, chức năng in in ra danh sách kết quả

Làm cách nào để chuyển đổi chuỗi thành int Python?

Để chuyển đổi một chuỗi thành số nguyên trong Python, hãy sử dụng hàm int() . Hàm này nhận hai tham số. chuỗi ban đầu và cơ sở tùy chọn để biểu diễn dữ liệu. Sử dụng cú pháp print(int("STR")) để trả về str dưới dạng int hoặc số nguyên.

Tôi có thể chuyển đổi một chuỗi thành một số nguyên không?

Chúng ta có thể chuyển String thành int trong java bằng cách sử dụng Integer. phương thức parseInt() . Để chuyển đổi String thành Integer, chúng ta có thể sử dụng Integer. valueOf() phương thức trả về thể hiện của lớp Integer.