3 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以使用設(shè)置操作
In [13]: a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
...: b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
In [14]: list(set(a) & set(b))
Out[14]: [1, 2, 3, 5, 8, 13]
您的代碼的問題是輸出中的重復(fù)元素。您可以通過在輸出上應(yīng)用 set 運(yùn)算符來避免這種情況
common_list = list(set(i for i in a if i in b))

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊
您還可以這樣做:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
set(a).intersection(b)
set(a) & set(b)我覺得這比因?yàn)閷?duì)我來說感覺有點(diǎn)太“神奇”而更具可讀性。

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
您可以使用設(shè)置交集:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
out = list(set(a).intersection(set(b)))
print(out)
輸出:
[1, 2, 3, 5, 8, 13]
添加回答
舉報(bào)