亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

僅包含 2 個輸入列表之間共有的元素的列表(沒有重復項我做不到)

僅包含 2 個輸入列表之間共有的元素的列表(沒有重復項我做不到)

梵蒂岡之花 2023-05-23 16:04:26
從兩個列表中,返回一個列表,該列表僅包含 2 個輸入列表之間共有的元素。無重復。輸入: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]我的解決方案:common_list = [i for i in a if i in b]我的輸出:[1, 1, 2, 3, 5, 8, 13]我需要的輸出:[1, 2, 3, 5, 8, 13]
查看完整描述

3 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

您可以使用設置操作


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]

您的代碼的問題是輸出中的重復元素。您可以通過在輸出上應用 set 運算符來避免這種情況


common_list = list(set(i for i in a if i in b))


查看完整回答
反對 回復 2023-05-23
?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

您還可以這樣做:


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)我覺得這比因為對我來說感覺有點太“神奇”而更具可讀性。


查看完整回答
反對 回復 2023-05-23
?
MM們

TA貢獻1886條經驗 獲得超2個贊

您可以使用設置交集:


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]


查看完整回答
反對 回復 2023-05-23
  • 3 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號