到目前为止,我一直在使用这段代码从python中的列表中删除重复项:
my_list = list(set(my_list))
我现在有一个列表列表,我希望能够从列表列表中删除重复项。例如:
(['possible-duplicate', 'random-data'], ['possible-duplicate', 'random-data'], ['possible-duplicate', 'random-data'])
如果possible-duplicate是重复的,我想删除整个子列表。
这能办到吗?
谢谢
发布于 2014-01-29 20:43:36
根据你的数据制作一本字典:
data = (['possible-duplicate', '12345'],
['not-a-duplicate', '54321'],
['possible-duplicate', '51423'])
data_unique = dict(data)结果是{'not-a-duplicate': '54321', 'possible-duplicate': '51423'},或者如果您喜欢一个元组列表,请使用date_unique.items(),这将为您提供[('not-a-duplicate', '54321'), ('possible-duplicate', '51423')]。
或者在更一般的情况下,子列表有两个以上的元素,您可以使用
data_unique = dict((d[0], d) for d in data)然后使用data_unique.values()收回“统一”列表。
发布于 2014-01-29 20:41:06
seen = set()
[sublist for sublist in my_list if sublist[0] not in seen and not seen.add(sublist[0])]这也恰好维护了秩序,而list(set(...))却没有这样做。
https://stackoverflow.com/questions/21442117
复制相似问题