Hướng dẫn python extract number from string after character - số trích xuất python từ chuỗi sau ký tự

Nếu bạn lo lắng về việc sử dụng Split từ bên trái vì có rất nhiều nhân vật không mong muốn ngay từ đầu, hãy sử dụng RSplit.

s = "abcdef,12"
s.rsplit(",", 1)[-1]

Ở đây, RSPLIT sẽ bắt đầu phân tách chuỗi từ bên phải và đối số thứ hai tùy chọn mà chúng tôi sử dụng sẽ dừng RSplit để tiến hành xa hơn nhà điều hành dấu phẩy thứ nhất mà nó gặp phải.

(eg):
s = "abc,def,12"
s.rsplit(",", 1)[-1]
# Outputs 12
s = "abcdef12"
s.rsplit(",", 1)[-1]
# Outputs abcdef12

Điều này sẽ đơn giản hơn và sạch hơn rất nhiều để có được chuỗi số cuối cùng thay vì làm bất cứ điều gì theo cách thủ công.

Chưa kể, sẽ dễ dàng hơn rất nhiều nếu chúng tôi muốn kiểm tra xem chúng tôi chỉ nhận được số với điều này. Ngay cả khi đó là một danh sách các chuỗi.

def get_numbers(string_list, skip_on_error=True):
    numbers_list = []
    for input_string in string_list:
        the_number = input_string.rsplit(",", 1)[-1]
        if the_number.isdigit():
            numbers_list.append(the_number)
        elif skip_on_error:
            numbers_list.append("")
        else:
            raise Exception("Wrong Format occurred: %s" % (input_string))
    return numbers_list

Và nếu bạn đang tìm kiếm tối ưu hóa hơn nữa và chắc chắn rằng hầu hết (nếu không phải tất cả) các chuỗi sẽ có định dạng chính xác, bạn thậm chí có thể sử dụng thử trừ khi bạn sẽ đi với danh sách số nguyên thay vì danh sách chuỗi. Như thế này:

# Instead of the if.. elif.. else construct
try:
    numbers_list.append(int(the_number))
except ValueError:
    if skip_on_error:
        numbers_list.append(0)
    else:
        raise Exception("Wrong Format occurred: %s" % (input_string))

Nhưng luôn luôn nhớ Zen của Python và sử dụng Split/RSplit theo sau:

  1. Đẹp tốt hơn xấu
  2. Rõ ràng là tốt hơn tiềm ẩn
  3. Đơn giản là tốt hơn phức tạp
  4. Tính dễ đọc
  5. Nên có một-- và tốt nhất là chỉ có một cách để làm điều đó

Và cũng nhớ Donald Knuth:

Chúng ta nên quên đi những hiệu quả nhỏ, nói khoảng 97% thời gian: Tối ưu hóa sớm là gốc rễ của mọi điều ác. Tuy nhiên, chúng ta không nên bỏ qua các cơ hội của mình trong 3% quan trọng đópremature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%

Trong hướng dẫn này, chúng tôi sẽ xem xét cách trích xuất các số từ một chuỗi trong Python với sự trợ giúp của các ví dụ.

Hướng dẫn python extract number from string after character - số trích xuất python từ chuỗi sau ký tự

Bạn có thể lặp qua chuỗi và sử dụng hàm chuỗi

(eg):
s = "abc,def,12"
s.rsplit(",", 1)[-1]
# Outputs 12
s = "abcdef12"
s.rsplit(",", 1)[-1]
# Outputs abcdef12
4 để trích xuất số từ một chuỗi trong Python. Sử dụng các bước sau -

  1. Intialize chuỗi kết quả của chúng tôi vào một chuỗi trống.
  2. Lặp qua chuỗi.
  3. Đối với mỗi ký tự trong chuỗi, hãy sử dụng hàm
    (eg):
    s = "abc,def,12"
    s.rsplit(",", 1)[-1]
    # Outputs 12
    s = "abcdef12"
    s.rsplit(",", 1)[-1]
    # Outputs abcdef12
    
    4 để kiểm tra xem nó có phải là chữ số hay không.
  4. Nếu đó là một chữ số, hãy thêm ký tự vào chuỗi kết quả của chúng tôi.

Hãy cùng xem xét một ví dụ để thấy các bước trên trong hành động trong Python.

# string with numbers
s = "I love you 3000"
# result string 
s_nums = ""
# iterate over characters in s
for ch in s:
    if ch.isdigit():
        s_nums += ch
# display the result string
print(s_nums)

Output:

3000

Chuỗi kết quả chỉ chứa các chữ số từ chuỗi gốc.

Bạn có thể giảm mã trên xuống một dòng bằng cách sử dụng danh sách hiểu và hàm

(eg):
s = "abc,def,12"
s.rsplit(",", 1)[-1]
# Outputs 12
s = "abcdef12"
s.rsplit(",", 1)[-1]
# Outputs abcdef12
6.

# string with numbers
s = "I love you 3000"
# result string 
s_nums = "".join([ch for ch in s if ch.isdigit()])
# display the result string
print(s_nums)

Output:

3000

Chúng tôi nhận được kết quả tương tự như trên. Chuỗi kết quả chỉ chứa các ký tự số. Ở đây, chúng tôi sử dụng danh sách hiểu biết để có được một danh sách các ký tự số trong chuỗi. Sau đó, chúng tôi sử dụng hàm chuỗi tham gia () để tham gia các ký tự này trở lại chuỗi.

Lưu ý rằng phương pháp này sẽ chỉ chụp các chữ số trong chuỗi. Ví dụ: nếu chuỗi chứa các số âm, phương thức này sẽ chỉ chụp các chữ số chứ không phải dấu.

# string with numbers
s = "The temperature is -5 degrees celsius."
# result string 
s_nums = "".join([ch for ch in s if ch.isdigit()])
# display the result string
print(s_nums)

Output:

5

Ở đây, chúng tôi có được chữ số trong chuỗi trong chuỗi kết quả của chúng tôi nhưng chúng tôi không nhận được dấu hiệu cho số âm.

Sử dụng các biểu thức chính quy để trích xuất số từ chuỗi

Ngoài ra, bạn có thể sử dụng các biểu thức thông thường để trích xuất số từ một chuỗi. Hãy để sử dụng nó để chụp các chữ số trong một chuỗi.

(eg):
s = "abc,def,12"
s.rsplit(",", 1)[-1]
# Outputs 12
s = "abcdef12"
s.rsplit(",", 1)[-1]
# Outputs abcdef12
0

Output:

(eg):
s = "abc,def,12"
s.rsplit(",", 1)[-1]
# Outputs 12
s = "abcdef12"
s.rsplit(",", 1)[-1]
# Outputs abcdef12
1

Chúng tôi nhận được các số từ chuỗi trong danh sách kết quả của chúng tôi. Bạn cũng có thể chụp các chữ số tiếp giáp bằng cách sử dụng biểu thức chính quy

(eg):
s = "abc,def,12"
s.rsplit(",", 1)[-1]
# Outputs 12
s = "abcdef12"
s.rsplit(",", 1)[-1]
# Outputs abcdef12
7.

Một điều tốt về việc sử dụng các biểu thức thông thường là bạn có thể tùy chỉnh chúng để nắm bắt các mẫu có liên quan đến bạn. Ví dụ: nếu bạn cũng muốn chụp các số nguyên âm (có dấu hiệu), bạn có thể sử dụng biểu thức thông thường,

(eg):
s = "abc,def,12"
s.rsplit(",", 1)[-1]
# Outputs 12
s = "abcdef12"
s.rsplit(",", 1)[-1]
# Outputs abcdef12
8

Hãy cùng nhìn vào một ví dụ.

(eg):
s = "abc,def,12"
s.rsplit(",", 1)[-1]
# Outputs 12
s = "abcdef12"
s.rsplit(",", 1)[-1]
# Outputs abcdef12
2

Output:

(eg):
s = "abc,def,12"
s.rsplit(",", 1)[-1]
# Outputs 12
s = "abcdef12"
s.rsplit(",", 1)[-1]
# Outputs abcdef12
3

Chúng tôi nhận được các số trong chuỗi cùng với dấu âm (nếu có) trong danh sách kết quả của chúng tôi.

Bạn cũng có thể quan tâm đến -

  • Python - Kiểm tra xem một chuỗi có chứa các số không
  • Python - Kiểm tra xem chuỗi chỉ chứa các số


Đăng ký nhận bản tin của chúng tôi để biết thêm hướng dẫn và hướng dẫn thông tin. Chúng tôi không spam và bạn có thể từ chối bất cứ lúc nào.
We do not spam and you can opt out any time.

  • Hướng dẫn python extract number from string after character - số trích xuất python từ chuỗi sau ký tự

    Piyush là một nhà khoa học dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt. Trong quá khứ, anh ta làm việc như một nhà khoa học dữ liệu cho ZS và có bằng kỹ sư từ IIT Roorkee. Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trên các dự án phụ.

    Xem tất cả các bài viết

Làm cách nào để trích xuất một số cụ thể 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 chia một chuỗi sau một ký tự cụ thể trong Python?

Python Chuỗi chia () Phương thức Cú pháp..
Cú pháp: str.split (phân tách, maxsplit).
Thông số :.
Trả về: Trả về danh sách các chuỗi sau khi phá chuỗi đã cho bằng cách phân cách được chỉ định ..

Làm thế nào để bạn in một chuỗi sau một ký tự trong Python?

Sử dụng Split () để có được chuỗi sau khi xuất hiện chuỗi con đã cho.Hàm phân chia cũng có thể được áp dụng để thực hiện nhiệm vụ cụ thể này, trong chức năng này, chúng tôi sử dụng sức mạnh của việc giới hạn phân chia và sau đó in chuỗi sau.. The split function can also be applied to perform this particular task, in this function, we use the power of limiting the split and then print the later string.

Làm cách nào để lấy số từ một chuỗi?

Số từ một chuỗi trong JavaScript có thể được trích xuất vào một mảng số bằng cách sử dụng phương thức khớp.Hàm này lấy một biểu thức chính quy làm đối số và trích xuất số từ chuỗi.Biểu thức chính quy để trích xuất một số là (/(\ d+)/).using the match method. This function takes a regular expression as an argument and extracts the number from the string. Regular expression for extracting a number is (/(\d+)/).