我有一个清单: mylist = [('Item A','CA','10'),('Item B','CT','12'),('Item A','CA','14'),('项目A','NH','10')]
我想根据第1列和第2列删除重复项。所以我想要的输出是:
[('Item A','CA','10'),('Item B','CT','12'),('Item A','NH','10')]
我不确定如何解决这个问题,所以我没有发布任何代码,但只是寻求一些帮助:)
答案 0 :(得分:1)
使用词典。另一个答案是好的。对于多样性,这里有一个单独的表达式,它将为您提供uniq的列表(尽管不保留元素的顺序)。
{ tuple(item[0:2]):item for item in mylist[::-1] }.values()
这将使用元素0和1作为键创建一个来自mylist元素的dict(隐式删除重复项)。因为mylist以相反的顺序迭代,所以带有重复键的最后一个元素(元素0和1)将保留在dict中。
答案 1 :(得分:0)
Dict键可以是任何可清洗类型。创建一个dict,每个项目的前两列作为键,如果之前没有看到这些列,则只添加到unique
。
unique = {}
for item in mylist:
if item[0:2] not in unique:
unique[item[0:2]] = item
print unique.values()