Hướng dẫn find first digit in string python - tìm chữ số đầu tiên trong chuỗi python

Đây là một cách tốt hơn và linh hoạt hơn, Regex đang quá mức cần thiết ở đây.

s = 'xdtwkeltjwlkejt7wthwk89lk'

for i, c in enumerate[s]:
    if c.isdigit[]:
        print[i]
        break

output:

15

Để có được tất cả các chữ số và vị trí của chúng, một biểu thức đơn giản sẽ làm

>>> [[i, c] for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]]
[[15, '7'], [21, '8'], [22, '9']]

Hoặc bạn có thể tạo ra một dict của chữ số và vị trí cuối cùng của nó

>>> {c: i for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]}
{'9': 22, '8': 21, '7': 15}

Tìm chỉ mục của chữ số đầu tiên trong một chuỗi trong Python #

Để tìm chỉ mục của chữ số đầu tiên trong một chuỗi:

  1. Sử dụng vòng lặp for để lặp qua chuỗi với
    15
    
    0.
  2. Sử dụng phương thức
    15
    
    1 để kiểm tra xem mỗi ký tự là một chữ số.
  3. Sau khi tìm thấy chỉ mục, hãy sử dụng câu lệnh
    15
    
    2 để thoát ra khỏi vòng lặp.

Copied!

my_str = 'bobby123hadz' for index, char in enumerate[my_str]: if char.isdigit[]: print[index, char] # 👉️ 5, 1 break

Chúng tôi đã sử dụng chức năng

15
0 để có quyền truy cập vào chỉ mục của lần lặp hiện tại.

Hàm liệt kê có thể lặp lại và trả về một đối tượng liệt kê chứa các bộ dữ liệu trong đó phần tử thứ nhất là chỉ mục và thứ hai là mục tương ứng.

Copied!

my_str = 'bobby' for index, char in enumerate[my_str]: print[char, index] # 👉️ b 0, o 1, b 2, b 3, y 4

Trên mỗi lần lặp, chúng tôi sử dụng phương thức

15
1 để kiểm tra xem ký tự hiện tại có phải là một chữ số không.

Phương thức str.isdigit trả về

15
5 Nếu tất cả các ký tự trong chuỗi là các chữ số và có ít nhất 1 ký tự, nếu không
15
6 được trả về.

Copied!

print['A'.isdigit[]] # 👉️ False print['5'.isdigit[]] # 👉️ True

Khi chúng tôi tìm thấy một chữ số, chúng tôi sử dụng câu lệnh

15
2 để thoát ra khỏi vòng lặp.

Copied!

my_str = 'bobby123hadz' for index, char in enumerate[my_str]: if char.isdigit[]: print[index, char] # 👉️ 5, 1 break

Tuyên bố phá vỡ thoát ra khỏi vòng lặp for hoặc

15
9.

Ngoài ra, bạn có thể sử dụng phương pháp

>>> [[i, c] for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]]
[[15, '7'], [21, '8'], [22, '9']]
0.

Tìm chỉ mục của chữ số đầu tiên trong chuỗi bằng cách sử dụng re.search [] #

Sử dụng phương thức

>>> [[i, c] for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]]
[[15, '7'], [21, '8'], [22, '9']]
0 để tìm chỉ mục của chữ số đầu tiên trong một chuỗi, ví dụ:
>>> [[i, c] for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]]
[[15, '7'], [21, '8'], [22, '9']]
2. Phương pháp
>>> [[i, c] for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]]
[[15, '7'], [21, '8'], [22, '9']]
0 tìm kiếm vị trí đầu tiên trong chuỗi nơi biểu thức được cung cấp chính quy tạo ra một trận đấu.

Copied!

import re my_str = 'bobby123hadz' match = re.search[r'\d', my_str] if match: # 👇️ Index of first digit: 5 print['Index of first digit:', match.start[]] # 👇️ Digit found: 1 print['Digit found:', match.group[0]] else: print['The string does NOT contain any digits']

Phương thức RE.Search tìm kiếm vị trí đầu tiên trong chuỗi nơi biểu thức được cung cấp chính quy tạo ra một trận đấu.

Nếu phương thức

>>> [[i, c] for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]]
[[15, '7'], [21, '8'], [22, '9']]
0 tìm thấy một trận đấu, nó sẽ trả về một đối tượng
>>> [[i, c] for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]]
[[15, '7'], [21, '8'], [22, '9']]
5, nếu không
>>> [[i, c] for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]]
[[15, '7'], [21, '8'], [22, '9']]
6 được trả về.

Đối số đầu tiên chúng tôi chuyển sang phương pháp

>>> [[i, c] for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]]
[[15, '7'], [21, '8'], [22, '9']]
0 là một biểu thức chính quy.

Ký tự

>>> [[i, c] for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]]
[[15, '7'], [21, '8'], [22, '9']]
8 khớp với các chữ số
>>> [[i, c] for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]]
[[15, '7'], [21, '8'], [22, '9']]
9 [và nhiều ký tự chữ số khác].

Bạn có thể sử dụng phương thức

>>> {c: i for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]}
{'9': 22, '8': 21, '7': 15}
0 trên đối tượng khớp để lấy chỉ mục của chữ số đầu tiên trong chuỗi.

Nếu bạn cần có được chữ số đầu tiên, hãy chuyển

>>> {c: i for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]}
{'9': 22, '8': 21, '7': 15}
1 sang phương thức
>>> {c: i for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]}
{'9': 22, '8': 21, '7': 15}
2.

Khi số

>>> {c: i for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]}
{'9': 22, '8': 21, '7': 15}
1 được chuyển đến phương thức Match.group [], nó sẽ trả về toàn bộ trận đấu.

Bài Viết Liên Quan

Chủ Đề