簡體   English   中英

如何確定列表之間的差異?

[英]How to determine the difference between the lists?

我有兩個清單:

first_list = [('A', 'Name A'), ('B', 'Name B'), ('C', 'Other Name')]
second_list = [('A', 'Name A'), ('B', 'Name B'), ('C', 'Name C'), ('D', 'Name D')]

我想要這樣的列表: third_list = [('D', 'Name D')]

我用過: third_list = list(set(second_list) ^ set(first_list))但它返回了我: third_list = [('C', 'Name C'), ('D', 'Name D')]

因此,如您所見,我想列出元組的第一項不同的地方。 ('C', 'Other Name')('C', 'Name C')必須相同,因為元組中的第一項相同。

查看在線演示

first_list = [('A', 'Name A'), ('B', 'Name B'), ('C', 'Other Name')]
second_list = [('A', 'Name A'), ('B', 'Name B'), ('C', 'Name C'), ('D', 'Name D')]

first_dict = dict(first_list)
second_dict = dict(second_list)
value = { k : second_dict[k] for k in set(second_dict) - set(first_dict) }
print(value)

這將完成工作:

first_second = [('A', 'Name A'), ('B', 'Name B'), ('C', 'Other Name')]
second_second = [('A', 'Name A'), ('B', 'Name B'), ('C', 'Name C'), ('D', 'Name D')]
d_one=dict(first_second)
d_two=dict(second_second)
res=[(i,j) for i,j in d_two.items() if i in set(d_two).symmetric_difference(set(d_one)) ]

然后res

[('D', 'Name D')]
[x for x in second_list if x[0] not in dict(first_list)]

[('D', 'Name D')]

暫無
暫無

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

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