12
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 yếu tố một mình thì điều này thật dễ dàng:
>>> 3 not in [2, 3, 4] False >>> 3 not in [4, 5, 6] True
Nhưng điều gì sẽ xảy ra nếu tôi có hai danh sách và phải kiểm tra xem các yếu tố trong danh sách
A=[1,2,3,4]
B=[4,5,6,7]
2 có xảy ra trong danh sách A=[1,2,3,4]
B=[4,5,6,7]
3?A=[1,2,3,4]
B=[4,5,6,7]
Làm cách nào để nhận được kết quả cho tôi thấy rằng ____ 14, ________ 15, ________ 16 không có trong danh sách
A=[1,2,3,4]
B=[4,5,6,7]
3?
Alexander
23.2k11 Huy hiệu vàng60 Huy hiệu bạc73 Huy hiệu đồng11 gold badges60 silver badges73 bronze badges
Đã hỏi ngày 17 tháng 6 năm 2015 lúc 11:34Jun 17, 2015 at 11:34
Robert Buckleyrobert BuckleyRobert Buckley
10,6K6 Huy hiệu vàng24 Huy hiệu bạc25 Huy hiệu đồng6 gold badges24 silver badges25 bronze badges
1
Nếu các mục trong danh sách có thể băm:
>>> set[A] - set[B]
{1, 2, 3}
Nếu không, bạn có thể sử dụng hàm
A=[1,2,3,4]
B=[4,5,6,7]
8:>>> list[filter[lambda a: a not in B, A]]
[1, 2, 3]
Trong trường hợp đó, nếu
A=[1,2,3,4]
B=[4,5,6,7]
3 được sắp xếp, bạn có thể có hiệu suất tốt hơn bằng cách sử dụng >>> set[A] - set[B]
{1, 2, 3}
0 để tìm kiếm logarit:>>> def pred[a]: # if B is already *sorted*
... from bisect import bisect_left
... i = bisect_left[B, a]
... return i == len[B] or B[i] != a
...
>>> list[filter[pred, A]]
[1, 2, 3]
Đã trả lời ngày 17 tháng 6 năm 2015 lúc 11:38Jun 17, 2015 at 11:38
behzad.nouribehzad.nouribehzad.nouri
71.2K18 Huy hiệu vàng121 Huy hiệu bạc119 Huy hiệu đồng18 gold badges121 silver badges119 bronze badges
Bạn cũng có thể sử dụng danh sách hiểu biết:
C=[i for i in A if i not in B]
Output:
[1, 2, 3]
Đã trả lời ngày 17 tháng 6 năm 2015 lúc 11:42Jun 17, 2015 at 11:42
Sử dụng danh sách hiểu:
Câu trả lời thật
any[[True for x in [1, 2, 3, 4] if x in [4, 5, 6, 7]]]
Danh sách các yếu tố không có trong danh sách thứ hai
[x for x in [1, 2, 3, 4] if x not in [4, 5, 6, 7]]
Đã trả lời ngày 17 tháng 6 năm 2015 lúc 11:37Jun 17, 2015 at 11:37
ZXZAKZXZAKzxzak
8.5034 Huy hiệu vàng27 Huy hiệu bạc25 Huy hiệu Đồng4 gold badges27 silver badges25 bronze badges
2
set[A].difference[B] # set operation for difference between two collections A and B
Đã trả lời ngày 17 tháng 6 năm 2015 lúc 12:07Jun 17, 2015 at 12:07
Malik Brahimimalik BrahimiMalik Brahimi
16.1k5 Huy hiệu vàng36 Huy hiệu bạc66 Huy hiệu Đồng5 gold badges36 silver badges66 bronze badges
1
Đó là một trường hợp điển hình cho các hoạt động Boolean trên các bộ:
A=[1,2,3,4]
B=[4,5,6,7]
0Đã trả lời ngày 17 tháng 6 năm 2015 lúc 11:38Jun 17, 2015 at 11:38
71.2K18 Huy hiệu vàng121 Huy hiệu bạc119 Huy hiệu đồngMarcus Müller
Bạn cũng có thể sử dụng danh sách hiểu biết:4 gold badges50 silver badges87 bronze badges
1
Đã trả lời ngày 17 tháng 6 năm 2015 lúc 11:42
e.g.
A=[1,2,3,4]
B=[4,5,6,7]
1Sử dụng danh sách hiểu:Jun 17, 2015 at 11:39
Câu trả lời thậtshantanoo
Danh sách các yếu tố không có trong danh sách thứ hai1 gold badge23 silver badges36 bronze badges