Hướng dẫn python find position of character in string - python tìm vị trí của ký tự trong chuỗi

682

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Làm thế nào tôi có thể có được vị trí của một ký tự bên trong một chuỗi trong Python?

bad_coder

9.57820 Huy hiệu vàng38 Huy hiệu bạc62 Huy hiệu Đồng20 gold badges38 silver badges62 bronze badges

hỏi ngày 19 tháng 2 năm 2010 lúc 6:32Feb 19, 2010 at 6:32

0

Có hai phương thức chuỗi cho việc này,

s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
3 và
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
4. Sự khác biệt giữa hai là những gì xảy ra khi chuỗi tìm kiếm không được tìm thấy.
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
3 Trả về
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
6 và
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
4 tăng
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
8.

Sử dụng
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
3

>>> myString = 'Position of a character'
>>> myString.find['s']
2
>>> myString.find['x']
-1

Sử dụng
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
4

>>> myString = 'Position of a character'
>>> myString.index['s']
2
>>> myString.index['x']
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: substring not found

Từ hướng dẫn Python

>>> s="mystring"
>>> s.index["r"]
4
>>> s.find["r"]
4
1 Trả về chỉ số thấp nhất trong s nơi tìm thấy phụ con được tìm thấy sao cho phụ được chứa hoàn toàn trong
>>> s="mystring"
>>> s.index["r"]
4
>>> s.find["r"]
4
2. Trả lại
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
6 khi thất bại. Mặc định cho bắt đầu và kết thúc và giải thích các giá trị âm giống như đối với các lát cắt.
Return the lowest index in s where the substring sub is found such that sub is wholly contained in
>>> s="mystring"
>>> s.index["r"]
4
>>> s.find["r"]
4
2. Return
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
6 on failure. Defaults for start and end and interpretation of negative values is the same as for slices.

And:

>>> s="mystring"
>>> s.index["r"]
4
>>> s.find["r"]
4
4 như
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
3 nhưng tăng
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
8 khi không tìm thấy chất nền.
Like
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
3 but raise
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
8 when the substring is not found.

Tomerikoo

16.7K15 Huy hiệu vàng38 Huy hiệu bạc55 Huy hiệu Đồng15 gold badges38 silver badges55 bronze badges

Đã trả lời ngày 19 tháng 2 năm 2010 lúc 6:35Feb 19, 2010 at 6:35

Eli Benderskyeli BenderskyEli Bendersky

254K87 Huy hiệu vàng344 Huy hiệu bạc406 Huy hiệu đồng87 gold badges344 silver badges406 bronze badges

1

Chỉ vì một mục đích đầy đủ, nếu bạn cần tìm tất cả các vị trí của một ký tự trong một chuỗi, bạn có thể làm như sau:

s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]

sẽ in:

>>> s="mystring"
>>> s.index["r"]
4
>>> s.find["r"]
4
7

Jolbas

7475 Huy hiệu bạc15 Huy hiệu Đồng5 silver badges15 bronze badges

Đã trả lời ngày 26 tháng 9 năm 2015 lúc 7:59Sep 26, 2015 at 7:59

Salvador Dalisalvador DaliSalvador Dali

205K142 Huy hiệu vàng687 Huy hiệu bạc746 Huy hiệu Đồng142 gold badges687 silver badges746 bronze badges

4

>>> s="mystring"
>>> s.index["r"]
4
>>> s.find["r"]
4

"Gió dài"

>>> for i,c in enumerate[s]:
...   if "r"==c: print i
...
4

để có được cơ chất,

>>> s="mystring"
>>> s[4:10]
'ring'

Đã trả lời ngày 19 tháng 2 năm 2010 lúc 6:36Feb 19, 2010 at 6:36

ghostdog74ghostdog74ghostdog74

Phù bằng vàng 315K5555 gold badges253 silver badges341 bronze badges

4

Chỉ để hoàn thành, trong trường hợp tôi muốn tìm phần mở rộng trong một tên tệp để kiểm tra nó, tôi cần tìm cái cuối cùng '.', Trong trường hợp này là sử dụng rfind:

path = 'toto.titi.tata..xls'
path.find['.']
4
path.rfind['.']
15

Trong trường hợp của tôi, tôi sử dụng các mục sau, hoạt động bất kỳ tên tệp hoàn chỉnh nào là:

filename_without_extension = complete_name[:complete_name.rfind['.']]

Đã trả lời ngày 28 tháng 9 năm 2017 lúc 6:37Sep 28, 2017 at 6:37

A.JolyA.JolyA.Joly

2.1572 Huy hiệu vàng19 Huy hiệu bạc23 Huy hiệu đồng2 gold badges19 silver badges23 bronze badges

1

Điều gì xảy ra khi chuỗi chứa một ký tự trùng lặp? Từ kinh nghiệm của tôi với

s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
4, tôi đã thấy rằng để trùng lặp, bạn lấy lại cùng một chỉ số.

Ví dụ:

s = 'abccde'
for c in s:
    print['%s, %d' % [c, s.index[c]]]

sẽ trở lại:

a, 0
b, 1
c, 2
c, 2
d, 4

Trong trường hợp đó, bạn có thể làm điều gì đó như thế:

>>> myString = 'Position of a character'
>>> myString.index['s']
2
>>> myString.index['x']
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: substring not found
0

Đã trả lời ngày 1 tháng 7 năm 2015 lúc 12:40Jul 1, 2015 at 12:40

DimsarakdimsarakDimSarak

4422 Huy hiệu vàng5 Huy hiệu bạc11 Huy hiệu đồng2 gold badges5 silver badges11 bronze badges

1

>>> myString = 'Position of a character'
>>> myString.index['s']
2
>>> myString.index['x']
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: substring not found
1

Có lẽ bạn muốn xem xét tài liệu để tìm hiểu sự khác biệt giữa hai là gì.

Brad Koch

18.3K18 Huy hiệu vàng107 Huy hiệu bạc135 Huy hiệu Đồng18 gold badges107 silver badges135 bronze badges

Đã trả lời ngày 19 tháng 2 năm 2010 lúc 6:37Feb 19, 2010 at 6:37

John Machinjohn MachinJohn Machin

79.6K11 Huy hiệu vàng138 Huy hiệu bạc184 Huy hiệu đồng11 gold badges138 silver badges184 bronze badges

1

Một ký tự có thể xuất hiện nhiều lần trong một chuỗi. Ví dụ: trong chuỗi

>>> s="mystring"
>>> s.index["r"]
4
>>> s.find["r"]
4
9, vị trí của
>>> for i,c in enumerate[s]:
...   if "r"==c: print i
...
4
0 là
>>> for i,c in enumerate[s]:
...   if "r"==c: print i
...
4
1 [vì việc lập chỉ mục thường bắt đầu từ số 0]. Nhưng những gì tôi tìm thấy là cả hai chức năng
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
3 và
s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
4 trả về vị trí đầu tiên của một nhân vật. Vì vậy, điều này có thể được giải quyết làm điều này:

>>> myString = 'Position of a character'
>>> myString.index['s']
2
>>> myString.index['x']
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: substring not found
2

Đã trả lời ngày 16 tháng 9 năm 2018 lúc 9:33Sep 16, 2018 at 9:33

ITSUBASITSSUBASitssubas

1622 Huy hiệu bạc11 Huy hiệu đồng2 silver badges11 bronze badges

Nếu bạn muốn tìm trận đấu đầu tiên.

Python có một phương thức chuỗi được xây dựng trong công việc: index [].

>>> myString = 'Position of a character'
>>> myString.index['s']
2
>>> myString.index['x']
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: substring not found
3

Where:

  • Giá trị: [Yêu cầu] Giá trị để tìm kiếm.
  • Bắt đầu: [Tùy chọn] Nơi bắt đầu tìm kiếm. Mặc định là 0.
  • Kết thúc: [Tùy chọn] Nơi kết thúc tìm kiếm. Mặc định là kết thúc chuỗi.
>>> myString = 'Position of a character'
>>> myString.index['s']
2
>>> myString.index['x']
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: substring not found
4

Nếu bạn muốn tìm tất cả các trận đấu.

Giả sử bạn cần tất cả các chỉ mục trong đó ký tự

>>> for i,c in enumerate[s]:
...   if "r"==c: print i
...
4
4 và không chỉ là mục đầu tiên.

Cách Pythonic sẽ là sử dụng

>>> for i,c in enumerate[s]:
...   if "r"==c: print i
...
4
5.

>>> myString = 'Position of a character'
>>> myString.index['s']
2
>>> myString.index['x']
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: substring not found
5

Hoặc thậm chí tốt hơn với một danh sách hiểu biết:

>>> myString = 'Position of a character'
>>> myString.index['s']
2
>>> myString.index['x']
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: substring not found
6

Đã trả lời ngày 26 tháng 1 năm 2021 lúc 5:01Jan 26, 2021 at 5:01

Guzman Ojeroguzman OjeroGuzman Ojero

2.13019 huy hiệu bạc18 Huy hiệu đồng19 silver badges18 bronze badges

>>> for i,c in enumerate[s]:
...   if "r"==c: print i
...
4
6 là một công cụ của bên thứ ba tìm thấy tất cả các chỉ số của các mục đáp ứng một điều kiện.

Ở đây chúng tôi tìm thấy tất cả các vị trí chỉ mục của chữ cái

>>> for i,c in enumerate[s]:
...   if "r"==c: print i
...
4
7.

Được

>>> myString = 'Position of a character'
>>> myString.index['s']
2
>>> myString.index['x']
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: substring not found
7

Mã số

>>> myString = 'Position of a character'
>>> myString.index['s']
2
>>> myString.index['x']
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: substring not found
8

Đã trả lời ngày 9 tháng 2 năm 2018 lúc 0:46Feb 9, 2018 at 0:46

Pylangpylangpylang

36.7K11 Huy hiệu vàng121 Huy hiệu bạc112 Huy hiệu đồng11 gold badges121 silver badges112 bronze badges

Một giải pháp với Numpy để truy cập nhanh vào tất cả các chỉ mục:

>>> myString = 'Position of a character'
>>> myString.index['s']
2
>>> myString.index['x']
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: substring not found
9

Đã trả lời ngày 15 tháng 1 năm 2020 lúc 20:40Jan 15, 2020 at 20:40

SebsebSeb

3024 Huy hiệu bạc6 Huy hiệu đồng4 silver badges6 bronze badges

2

Hầu hết các phương pháp tôi tìm thấy đề cập đến việc tìm bộ nền đầu tiên trong một chuỗi. Để tìm tất cả các nền tảng, bạn cần phải làm việc xung quanh.

Ví dụ:

sẽ trở lại:

Trong trường hợp đó, bạn có thể làm điều gì đó như thế:

Đã trả lời ngày 1 tháng 7 năm 2015 lúc 12:40

s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
0

Dimsarakdimsarak

4422 Huy hiệu vàng5 Huy hiệu bạc11 Huy hiệu đồng

Có lẽ bạn muốn xem xét tài liệu để tìm hiểu sự khác biệt giữa hai là gì.

Brad Koch3 gold badges11 silver badges25 bronze badges

18.3K18 Huy hiệu vàng107 Huy hiệu bạc135 Huy hiệu ĐồngNov 5, 2021 at 8:44

s = 'shak#spea#e'
c = '#'
print[[pos for pos, char in enumerate[s] if char == c]]
2

Đã trả lời ngày 19 tháng 2 năm 2010 lúc 6:37Oct 9 at 18:51

1

Làm thế nào để tôi tìm thấy vị trí của một ký tự trong một chuỗi trong Python?

Phương pháp 1: Lấy vị trí của một ký tự trong python bằng phương thức rfind [] python chuỗi rfind [] trả về chỉ số cao nhất của chuỗi con nếu được tìm thấy trong chuỗi đã cho. Nếu không tìm thấy thì nó sẽ trả về -1.using rfind[] Python String rfind[] method returns the highest index of the substring if found in the given string. If not found then it returns -1.

Làm thế nào để bạn tìm thấy vị trí của một ký tự cụ thể trong một chuỗi?

Phương thức indexof [] trả về vị trí của sự xuất hiện đầu tiên của [các] ký tự được chỉ định trong một chuỗi.Mẹo: Sử dụng phương thức LastIndexof để trả về vị trí của lần xuất hiện cuối cùng của [các] ký tự được chỉ định trong một chuỗi. returns the position of the first occurrence of specified character[s] in a string. Tip: Use the lastIndexOf method to return the position of the last occurrence of specified character[s] in a string.

Làm thế nào để bạn tìm thấy vị trí của một từ trong một chuỗi trong Python?

Phương thức số 1: Sử dụng re.findall [] + index [] Đây là một trong những cách mà chúng ta có thể tìm thấy vị trí nơi từ tồn tại.Trong đó, chúng tôi tìm kiếm mẫu chuỗi con bằng cách sử dụng findall [] và vị trí của nó bằng index [].Using re. findall[] + index[] This is one of the way in which we can find the location where word exists. In this we look for substring pattern using findall[] and its position using index[].

Làm thế nào để bạn tìm thấy vị trí thứ hai của một ký tự trong một chuỗi trong Python?

Sử dụng phương thức Find []..
def find_string [txt, str1]:.
trả lại txt.Tìm [str1, txt. Tìm [str1] +1].
Chuỗi = đầu vào ["Nhập chuỗi:"].
chuỗi con = đầu vào ["nhập chuỗi con:"].
in ["Chỉ số của sự xuất hiện thứ hai của chuỗi con:", find_string [chuỗi, chuỗi con]].

Bài Viết Liên Quan

Chủ Đề