292
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.
Nếu tôi có một loạt các chuỗi, tôi có thể kiểm tra xem một chuỗi có nằm trong mảng mà không thực hiện vòng lặp for
không? Cụ thể, tôi đang tìm cách để thực hiện nó trong một tuyên bố
if item in my_list:
# whatever
0, vì vậy một cái gì đó như thế này:if [check that item is in array]:
user1767754
22K15 Huy hiệu vàng133 Huy hiệu bạc154 Huy hiệu đồng15 gold badges133 silver badges154 bronze badges
hỏi ngày 28 tháng 6 năm 2012 lúc 19:39Jun 28, 2012 at 19:39
SomekittenSsomekittensSomeKittens
38.1K19 Huy hiệu vàng111 Huy hiệu bạc142 Huy hiệu đồng19 gold badges111 silver badges142 bronze badges
3
Giả sử bạn có nghĩa là "danh sách" ở đâu bạn nói "mảng", bạn có thể làm
if item in my_list:
# whatever
Điều này hoạt động cho bất kỳ bộ sưu tập, không chỉ cho danh sách. Đối với từ điển, nó kiểm tra xem khóa đã cho có trong từ điển hay không.
Đã trả lời ngày 28 tháng 6 năm 2012 lúc 19:40Jun 28, 2012 at 19:40
Sven Marnachsven MarnachSven Marnach
546K114 Huy hiệu vàng915 Huy hiệu bạc817 Huy hiệu đồng114 gold badges915 silver badges817 bronze badges
4
Tôi cũng sẽ cho rằng bạn có nghĩa là "danh sách" khi bạn nói "mảng". Giải pháp của Sven Marnach là tốt. Nếu bạn sẽ thực hiện kiểm tra lặp đi lặp lại trong danh sách, thì có thể đáng để chuyển đổi nó thành một bộ hoặc đông lạnh, có thể nhanh hơn cho mỗi lần kiểm tra. Giả sử danh sách STR của bạn được gọi là
if item in my_list:
# whatever
1:subject_set = frozenset[subjects]
if query in subject_set:
# whatever
Đánh dấu tiền chuộc
291K40 Huy hiệu vàng384 Huy hiệu bạc608 Huy hiệu đồng40 gold badges384 silver badges608 bronze badges
Đã trả lời ngày 28 tháng 6 năm 2012 lúc 19:43Jun 28, 2012 at 19:43
Michael Hoffmanmichael HoffmanMichael Hoffman
30,9K7 Huy hiệu vàng58 Huy hiệu bạc82 Huy hiệu Đồng7 gold badges58 silver badges82 bronze badges
Sử dụng chức năng Lambda.
Giả sử bạn có một mảng:
nums = [0,1,5]
Kiểm tra xem 5 có ở
if item in my_list:
# whatever
2 trong Python 3.x:Python 3.X:[len[list[filter [lambda x : x == 5, nums]]] > 0]
Kiểm tra xem 5 có thuộc
if item in my_list:
# whatever
2 trong Python 2.7:Python 2.7:[len[filter [lambda x : x == 5, nums]] > 0]
Giải pháp này mạnh mẽ hơn. Bây giờ bạn có thể kiểm tra xem bất kỳ số nào thỏa mãn một điều kiện nhất định có trong mảng
if item in my_list:
# whatever
2 của bạn không.Ví dụ: kiểm tra xem bất kỳ số nào lớn hơn hoặc bằng 5 tồn tại trong
if item in my_list:
# whatever
2:[len[filter [lambda x : x >= 5, nums]] > 0]
T.Woody
1.0732 huy hiệu vàng11 Huy hiệu bạc24 Huy hiệu đồng2 gold badges11 silver badges24 bronze badges
Đã trả lời ngày 11 tháng 9 năm 2017 lúc 16:33Sep 11, 2017 at 16:33
1
Bạn phải sử dụng .Values cho mảng. Ví dụ: giả sử bạn có DataFrame có tên cột IE, kiểm tra ['name'], bạn có thể làm
if name in test['Name'].values :
print[name]
Đối với một danh sách bình thường, bạn không cần phải sử dụng .Values
SLFAN
8.805115 Huy hiệu vàng65 Huy hiệu bạc77 Huy hiệu đồng115 gold badges65 silver badges77 bronze badges
Đã trả lời ngày 25 tháng 11 năm 2017 lúc 11:06Nov 25, 2017 at 11:06
1
Bạn cũng có thể sử dụng cùng một cú pháp cho một mảng. Ví dụ: tìm kiếm trong loạt gấu trúc:
ser = pd.Series[['some', 'strings', 'to', 'query']]
if item in ser.values:
# do stuff
Đã trả lời ngày 11 tháng 12 năm 2015 lúc 23:32Dec 11, 2015 at 23:32
BCRBCRBCR
93011 Huy hiệu bạc26 Huy hiệu đồng11 silver badges26 bronze badges