簡體   English   中英

從列表部分匹配中刪除列表 Python

[英]Remove List from List partial match Python

如果列表有部分匹配,我正在嘗試從列表中刪除列表

清單 1

[['Person1', 'www.google.co.uk', '1'], ['Person2', 'www.amazon.co.uk', '2'],['Person3', 'www.google.co.uk', '2']]

清單 2

[['Person1', 'www.google.co.uk', '1'], ['Person2', 'www.amazon.co.uk', '2'],['Person1', 'www.google.co.uk', '2']]

所需的 Output:

['Person2', 'www.amazon.co.uk', '2']

目前我有以下代碼,只要它是完全匹配的,就會將其刪除:

[i for i in List1 if i in List2]

但由於數字可能會有所不同,我希望能夠匹配前兩個條目,所以最后一列中的數字無關緊要

你可以做:

l1 = [['Person1', 'www.google.co.uk', '1'], ['Person2', 'www.amazon.co.uk', '2'],['Person3', 'www.google.co.uk', '2']]

l2 = [['Person1', 'www.google.co.uk', '2'], ['Person2', 'www.amazon.co.uk', '2'],['Person1', 'www.google.co.uk', '2']]

print ([ x for x in l1 if x[0:2] in [ l[0:2] for l in l2 ] ])

Output:

[['Person1', 'www.google.co.uk', '1'], ['Person2', 'www.amazon.co.uk', '2']]

如果在[ l[0:2] for l in l2 ]中找到索引 0 和 1 的值,則在這里檢查l1中的每個子列表。 后者與l2相同,但值得注意的例外是它僅包含兩個子列表索引,而不是更多。 所以你可以in .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM