Đâ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:
- Sử dụng vòng lặp
for
để lặp qua chuỗi với
0.15
- Sử dụng phương thức
1 để kiểm tra xem mỗi ký tự là một chữ số.15
- Sau khi tìm thấy chỉ mục, hãy sử dụng câu lệnh
2 để thoát ra khỏi vòng lặp.15
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
1 để kiểm tra xem ký tự hiện tại có phải là một chữ số không.15
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
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.>>> [[i, c] for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]]
[[15, '7'], [21, '8'], [22, '9']]
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
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, c] for i, c in enumerate['xdtwkeltjwlkejt7wthwk89lk'] if c.isdigit[]]
[[15, '7'], [21, '8'], [22, '9']]
Đố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.