簡體   English   中英

在python列表中查找相同索引的不匹配項

[英]Finding mismatched item for same index in a python list

我有以下清單

l1 = ['a','b','c','a']
l2 = ['a','d','c','c']

我想從l2中找出與相同索引處的l1元素不匹配的元素。 例如:上面列表的輸出為['d','c']

因為l2應該在第二個位置有“ b”。

我可以通過遍歷該列表並找到不匹配項來實現。

l3 = []
for i in range(len(l1)):
    if l1[i] != l2[i]: l3.append(l2[i])
print l3

有沒有更好的方法可以做到這一點。 謝謝。

missing = [b for a,b in itertools.izip_longest(l1,l2,fillvalue=object()) if a != b]

比pythonic多一點...但是基本上是一樣的

Python列表理解,無需導入任何模塊(如itertools)。

l3 = [b for a,b in zip(l1,l2) if b != a]

每當您發現自己想要進行for循環時,其中在每次迭代時您都可能會將其附加到以空列表開頭的內容上,請考慮使用列表理解。

如果您具有相同的尺寸列表,則可以使用enumerate

l1 = ['a','b','c','a']
l2 = ['a','d','c','c']
print [ele for ind,ele in enumerate(l2) if ele != l1[ind]]
['d', 'c']

暫無
暫無

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

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