我想检查子列表中的特定元素,并删除python中具有相同元素的重复子列表

时间:2017-03-11 21:06:48

标签: python list python-3.x unique

我有这个

lst = [['100','LA'],['101','NY'],['100','NC']]
lst2 = []

我需要检查是否有任何100,101等重复并删除重复的数字。所以第二个列表看起来像这样

lst2=[['100','LA'],['101','NY']]

因为100已经在第二个列表中添加了一次

2 个答案:

答案 0 :(得分:0)

快速而肮脏的方法是使用通用唯一性过滤器:

def uniqueness(iterable,key=lambda x:x):
    seen = set()
    for item in iterable:
        fitem = key(item)
        if fitem not in seen:
            yield item
            seen.add(fitem)

然后您可以像:

一样使用它
list2 = list(uniqueness(lst,key=lambda x:x[0]))

如果你没有指定,过滤器将假定整个元素(但这里会失败,因为list不可用)。

答案 1 :(得分:0)

没有lambda的回答。

nmbrs = [n for n, city in lst] 

lst2 = [x for i, x in enumerate(lst) if x[0] not in nmbrs[:i]]