我想代码最容易解释我的目标...
list1 = [("1", "Item 1"), ("2", "Item 2"), ("3", "Item 3"), ("4", "Item 4")]
list2 = [("1", "Item 1"), ("2", "Item 2"), ("4", "Item 4")]
newlist = []
for i,j in list1:
if i not in list2[0]:
entry = (i,j)
newlist.append(entry)
print(newlist)
如果我们调用嵌套元组[i] [j]
我想比较[i]但是一旦完成,我想保留相应的[j]值。
我在互联网上找到了很多关于嵌套元组的信息,但大多数都是指查找特定项目。
我最近使用了一个下面的表达式,效果很好,看起来非常相似,但它只是不会打球。
for i,j in highscores:
print("\tPlayer:\t", j, "\tScore: ", i)
任何帮助都会得到很多帮助。
答案 0 :(得分:2)
如果我从您的评论中理解正确,您可以将其作为新列表:
newlist = [("3", "Item 3")]
您可以使用以下方式执行此操作:
1)列表理解:
newlist = [item for item in list1 if item not in list2]
print newlist
这将为您提供结果:
[('3', 'Item 3')]
2)您也可以使用symmetric difference之类的:
L = set(list1).symmetric_difference(list2)
newlist = list(L)
print newlist
这也会给你相同的结果!
3)最后你可以使用lambda函数,如:
unique = lambda l1, l2: set(l1).difference(l2)
x = unique(list1, list2)
newlist = list(x)
这也会产生相同的结果!
4)哦,最后但并非最不重要的是,使用简单的设置属性:
newlist = list((set(list1)-set(list2)))
答案 1 :(得分:1)
我想你只想创建一组list2的第一个元素,如果你只想比较列表的第一个元素。
newlist = []
list2_keys = set(elem[0] for elem in list2)
for entry in list1:
if entry[0] not in list2_keys:
newlist.append(entry)