[英]Deleting duplicates in list of lists in Python 2.7
Trenutno_stanje
是列表 povijest
是列表列表 epsilon_okolina
是提供字符串列表( pocetno
)的函数:
trenutno_stanje.append(pocetno) trenutno_stanje.extend(epsilon_okolina[pocetno]) povijest.append(trenutno_stanje)
povijest
应该是列表的基本列表,但是在某种程度上,它在代码中重复实体是可以避免的。
我想知道的是如何删除列表中的字符串重复项? 我试过了:
for p in povijest:
p=list(set(p))
但这并没有改变
在您的for
循环中,您只是重新分配p
而实际上没有更改最povijest
列表。 同样, set
仅适用于可哈希类型,而list
当然不是一个。 在将主列表内的列表转换为可以进行哈希处理的内容(例如tuple
,这是一个不可变的列表),然后将其转换为集合之后,您想使用列表理解。
>>> a = [1, 2, 3, 4]
>>> b = [1, 2, 3, 4]
>>> c = [1, 3, 4]
>>> i1 = [a, b, c]
>>> set([tuple(x) for x in i1])
set([(1, 2, 3, 4), (1, 3, 4)])
>>> b = [[1,2,3, 3], [3, 2, 4,4]]
>>> b = [ list(set(x)) for x in b ]
>>> b
[[1, 2, 3], [2, 3, 4]]
如果您对订单感到好奇,请尝试此操作,
>>> a=[1,2,3,4,5]
>>> b=[2,3,1,2]
>>> c=[1,2,3,4,5]
>>> z=[a,b,c]
>>> dict((x[0], x) for x in z).values()
[[1, 2, 3, 4, 5], [2, 3, 1, 2]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.