Hướng dẫn check if a list contains a string python - kiểm tra xem danh sách có chứa chuỗi python không

Làm cách nào để tìm kiếm các mục chứa chuỗi

xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
5 trong danh sách sau?

xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

Các kiểm tra sau đây nếu

xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
5 có trong danh sách, nhưng không phát hiện
xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
7 và
xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
8:

if 'abc' in xs:

hỏi ngày 30 tháng 1 năm 2011 lúc 13:29Jan 30, 2011 at 13:29

3

Để kiểm tra sự hiện diện của

xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
5 trong bất kỳ chuỗi nào trong danh sách:

xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...

Để có được tất cả các mục chứa

xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
5:

matching = [s for s in xs if "abc" in s]

Mateen Ulhaq

22.6K16 Huy hiệu vàng87 Huy hiệu bạc128 Huy hiệu đồng16 gold badges87 silver badges128 bronze badges

Đã trả lời ngày 30 tháng 1 năm 2011 lúc 13:32Jan 30, 2011 at 13:32

Sven Marnachsven MarnachSven Marnach

549K114 Huy hiệu vàng920 Huy hiệu bạc822 Huy hiệu Đồng114 gold badges920 silver badges822 bronze badges

19

Chỉ cần ném nó ra khỏi đó: Nếu bạn tình cờ phải khớp với nhiều chuỗi, ví dụ:

matching = [s for s in xs if "abc" in s]
1 và
matching = [s for s in xs if "abc" in s]
2, bạn có thể kết hợp hai lần hiểu như sau:

matchers = ['abc','def']
matching = [s for s in my_list if any[xs in s for xs in matchers]]

Output:

['abc-123', 'def-456', 'abc-456']

Đã trả lời ngày 3 tháng 8 năm 2014 lúc 6:00Aug 3, 2014 at 6:00

Fantabolousfantabolousfantabolous

20.1k6 Huy hiệu vàng52 Huy hiệu bạc48 Huy hiệu đồng6 gold badges52 silver badges48 bronze badges

3

Sử dụng

matching = [s for s in xs if "abc" in s]
3 để có được tất cả các yếu tố có
xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
5:

>>> xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']
>>> list[filter[lambda x: 'abc' in x, xs]]
['abc-123', 'abc-456']

Người ta cũng có thể sử dụng danh sách hiểu biết:

>>> [x for x in xs if 'abc' in x]

Mateen Ulhaq

22.6K16 Huy hiệu vàng87 Huy hiệu bạc128 Huy hiệu đồng16 gold badges87 silver badges128 bronze badges

Đã trả lời ngày 30 tháng 1 năm 2011 lúc 13:32Jan 30, 2011 at 13:34

Sven Marnachsven MarnachMAK

549K114 Huy hiệu vàng920 Huy hiệu bạc822 Huy hiệu Đồng10 gold badges53 silver badges85 bronze badges

Chỉ cần ném nó ra khỏi đó: Nếu bạn tình cờ phải khớp với nhiều chuỗi, ví dụ:

matching = [s for s in xs if "abc" in s]
1 và
matching = [s for s in xs if "abc" in s]
2, bạn có thể kết hợp hai lần hiểu như sau:

if 'abc' in str[my_list]:

Đã trả lời ngày 3 tháng 8 năm 2014 lúc 6:00

FantabolousfantabolousApr 13, 2016 at 8:19

20.1k6 Huy hiệu vàng52 Huy hiệu bạc48 Huy hiệu đồngRogerS

Sử dụng

matching = [s for s in xs if "abc" in s]
3 để có được tất cả các yếu tố có
xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
5:9 silver badges11 bronze badges

12

Người ta cũng có thể sử dụng danh sách hiểu biết:

Đã trả lời ngày 30 tháng 1 năm 2011 lúc 13:34

[el for el in lst if isinstance[el, collections.Iterable] and [st in el]]

Makmak

if 'abc' in xs:
0

25.7K10 Huy hiệu vàng53 Huy hiệu bạc85 Huy hiệu Đồng

Nếu bạn chỉ cần biết nếu 'ABC' có ở một trong các mục hay không, thì đây là cách ngắn nhất:

Lưu ý: Điều này giả định 'ABC' là một văn bản chữ và số. Không sử dụng nó nếu 'ABC' có thể chỉ là một nhân vật đặc biệt [tức là [] ',].Oct 20, 2011 at 13:24

Đã trả lời ngày 13 tháng 4 năm 2016 lúc 8:19Robert Muil

Rogersrogers1 gold badge24 silver badges30 bronze badges

4

if 'abc' in xs:
1

1.2449 huy hiệu bạc11 huy hiệu đồng

Đây là một câu hỏi khá cũ, nhưng tôi đưa ra câu trả lời này bởi vì các câu trả lời trước đó không đối phó với các mục trong danh sách không phải là chuỗi [hoặc một số loại đối tượng có thể lặp lại]. Các mục như vậy sẽ khiến toàn bộ danh sách hiểu được thất bại với một ngoại lệ.29 gold badges227 silver badges229 bronze badges

Để giải quyết một cách duyên dáng với các mục như vậy trong danh sách bằng cách bỏ qua các mục không có thiết kế, hãy sử dụng các mục sau:Jan 30, 2011 at 13:31

Sau đó, với một danh sách như vậy:Mariy

Bạn vẫn sẽ nhận được các mục phù hợp [

matching = [s for s in xs if "abc" in s]
5]4 gold badges40 silver badges57 bronze badges

0

if 'abc' in xs:
2

1.2449 huy hiệu bạc11 huy hiệu đồng

Đây là một câu hỏi khá cũ, nhưng tôi đưa ra câu trả lời này bởi vì các câu trả lời trước đó không đối phó với các mục trong danh sách không phải là chuỗi [hoặc một số loại đối tượng có thể lặp lại]. Các mục như vậy sẽ khiến toàn bộ danh sách hiểu được thất bại với một ngoại lệ.29 gold badges227 silver badges229 bronze badges

Để giải quyết một cách duyên dáng với các mục như vậy trong danh sách bằng cách bỏ qua các mục không có thiết kế, hãy sử dụng các mục sau:Jan 30, 2011 at 13:38

Sau đó, với một danh sách như vậy:Rubycon

Bạn vẫn sẽ nhận được các mục phù hợp [

matching = [s for s in xs if "abc" in s]
5]10 gold badges46 silver badges70 bronze badges

1

if 'abc' in xs:
3

Đã trả lời ngày 30 tháng 1 năm 2011 lúc 13:32Jan 30, 2011 at 13:34

Sven Marnachsven MarnachImran

549K114 Huy hiệu vàng920 Huy hiệu bạc822 Huy hiệu Đồng23 gold badges96 silver badges129 bronze badges

Chỉ cần ném nó ra khỏi đó: Nếu bạn tình cờ phải khớp với nhiều chuỗi, ví dụ:

matching = [s for s in xs if "abc" in s]
1 và
matching = [s for s in xs if "abc" in s]
2, bạn có thể kết hợp hai lần hiểu như sau:

if 'abc' in xs:
4

Đã trả lời ngày 3 tháng 8 năm 2014 lúc 6:00Apr 7, 2018 at 7:52

FantabolousfantabolousAmol Manthalkar

20.1k6 Huy hiệu vàng52 Huy hiệu bạc48 Huy hiệu đồng1 gold badge15 silver badges16 bronze badges

0

Sử dụng

matching = [s for s in xs if "abc" in s]
3 để có được tất cả các yếu tố có
xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
5:

if 'abc' in xs:
5

Người ta cũng có thể sử dụng danh sách hiểu biết:

Đã trả lời ngày 30 tháng 1 năm 2011 lúc 13:346 gold badges24 silver badges35 bronze badges

MakmakFeb 8, 2019 at 16:37

25.7K10 Huy hiệu vàng53 Huy hiệu bạc85 Huy hiệu ĐồngHarsh Lodhi

Nếu bạn chỉ cần biết nếu 'ABC' có ở một trong các mục hay không, thì đây là cách ngắn nhất:4 silver badges10 bronze badges

Lưu ý: Điều này giả định 'ABC' là một văn bản chữ và số. Không sử dụng nó nếu 'ABC' có thể chỉ là một nhân vật đặc biệt [tức là [] ',].list indices that correspond to a match as follows:

Đã trả lời ngày 13 tháng 4 năm 2016 lúc 8:19

Rogersrogers

if 'abc' in xs:
7

1.2449 huy hiệu bạc11 huy hiệu đồngJan 5, 2020 at 19:02

Đây là một câu hỏi khá cũ, nhưng tôi đưa ra câu trả lời này bởi vì các câu trả lời trước đó không đối phó với các mục trong danh sách không phải là chuỗi [hoặc một số loại đối tượng có thể lặp lại]. Các mục như vậy sẽ khiến toàn bộ danh sách hiểu được thất bại với một ngoại lệ.Grant Shannon

Để giải quyết một cách duyên dáng với các mục như vậy trong danh sách bằng cách bỏ qua các mục không có thiết kế, hãy sử dụng các mục sau:1 gold badge43 silver badges35 bronze badges

Sau đó, với một danh sách như vậy:

Bạn vẫn sẽ nhận được các mục phù hợp [

matching = [s for s in xs if "abc" in s]
5]

if 'abc' in xs:
8

Bài kiểm tra cho ITBER có thể không phải là tốt nhất. Có nó từ đây: Trong Python, làm thế nào để tôi xác định xem một đối tượng có phải không?Jul 14, 2020 at 2:43

if 'abc' in xs:
9

Đã trả lời ngày 20 tháng 10 năm 2011 lúc 13:24

Robert Muilrobert Muil9 gold badges32 silver badges41 bronze badges

2.8981 Huy hiệu vàng24 Huy hiệu bạc 30 Huy hiệu ĐồngJul 4, 2018 at 13:32

3

Jamylak

xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
0

125K29 Huy hiệu vàng227 Huy hiệu bạc229 Huy hiệu ĐồngFeb 18, 2021 at 2:38

Đã trả lời ngày 30 tháng 1 năm 2011 lúc 13:31Sam S.

Jariymariy6 silver badges22 bronze badges

xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
1

5.5364 Huy hiệu vàng40 Huy hiệu bạc57 Huy hiệu đồngMar 16, 2018 at 9:14

Đã trả lời ngày 30 tháng 1 năm 2011 lúc 13:38

xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
2

RubyConrubyCon

Phim thương hiệu vàng 18K1046 Huy hiệu bạc70 Huy hiệu đồngJan 26, 2019 at 2:44

xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
3

4b0

Imranimran30 gold badges94 silver badges138 bronze badges

84.3K23 Huy hiệu vàng96 Huy hiệu bạc129 Huy hiệu đồngJul 18, 2019 at 8:22

Tôi mới đến Python. Tôi đã nhận được mã bên dưới làm việc và làm cho nó dễ hiểu:

xs = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

if any["abc" in s for s in xs]:
    ...
4

Đã trả lời ngày 7 tháng 4 năm 2018 lúc 7:52

Amol Manthalkaramol Manthalkar18 gold badges20 silver badges37 bronze badges

1.7501 Huy hiệu vàng15 Huy hiệu bạc16 Huy hiệu đồngJun 16, 2018 at 10:52

Bài Viết Liên Quan

Chủ Đề