我有一个列表: mylist = ('Item A','CA','10'),('Item B','CT','12'),('Item A','CA','14'),('Item A','NH','10')
我想删除基于第1列和第2列的重复项。因此,我想要的输出是:
[('Item A','CA','10'),('Item B','CT','12'),('Item A','NH','10')]我真的不知道该怎么做,所以我还没有发布任何代码,但我只是在寻求一些帮助:)
发布于 2014-11-06 14:14:49
使用字典。另一个答案是好的。为了实现多样性,这里有一个单独的表达式,它将给出uniq'd列表(尽管元素的顺序没有被保留)。
{ tuple(item[0:2]):item for item in mylist[::-1] }.values()这将使用元素0和1作为键从mylist的元素创建一个dict (隐式删除重复项)。因为mylist是以相反的顺序迭代的,所以具有重复键的最后一个元素(元素0和1)将保留在dict中。
发布于 2014-11-06 13:57:25
Dict键可以是任何hashable类型。创建一个dict,将每一项的前两列作为关键字,并仅在以前从未见过这些列的情况下添加到unique。
unique = {}
for item in mylist:
if item[0:2] not in unique:
unique[item[0:2]] = item
print unique.values()https://stackoverflow.com/questions/26772459
复制相似问题