Python 从列表中删除所有重复项-不保留重复项的实例
我有一张单子:Python 从列表中删除所有重复项-不保留重复项的实例,python,list,set,duplicates,duplicate-removal,Python,List,Set,Duplicates,Duplicate Removal,我有一张单子: myList = [-3, -3, 6, 10, 10, 16, 16, 40, 40, 60, 60, 100, 100, 140, 140, 211, -8] 如何有效地从中删除所有重复项,即创建如下新列表: [6,211,-8] 我知道一种方法,跟踪重复的项,然后使用pythonset()删除它们,即 在python中有没有更好的方法来实现这一点(保持顺序)?最好的方法是反转条件,如下所示 注意:此方法将无法维持元素的顺序。例如,当 myList = [1, 1000,
myList = [-3, -3, 6, 10, 10, 16, 16, 40, 40, 60, 60, 100, 100, 140, 140, 211, -8]
如何有效地从中删除所有重复项,即创建如下新列表:
[6,211,-8]
我知道一种方法,跟踪重复的项,然后使用pythonset()删除它们,即
在python中有没有更好的方法来实现这一点(保持顺序)?最好的方法是反转条件,如下所示 注意:此方法将无法维持元素的顺序。例如,当
myList = [1, 1000, 10]
结果是
[1000, 1, 10]
因为collections.Counter
在内部只是一个字典。由于字典使用哈希,因此无法保证顺序
为了保持秩序,您可以这样做,如下所示
最好的方法是反转条件,如图所示 注意:此方法将无法维持元素的顺序。例如,当
myList = [1, 1000, 10]
结果是
[1000, 1, 10]
因为collections.Counter
在内部只是一个字典。由于字典使用哈希,因此无法保证顺序
为了保持秩序,您可以这样做,如下所示
myList=[-3、-3、6、10、10、16、16、40、40、60、60、100、100、140、140、211、-8] b=[] d=[] 对于myList中的x:
try:
w=b.index(x)
if w!=None:
d.append(x)
del b[w]
except:
b.append(x)
b=组(b)-组(d)
打印列表(b)
这也不会保持秩序myList=[-3、-3、6、10、10、16、16、40、40、60、60、100、100、140、140、211、-8] b=[] d=[] 对于myList中的x:
try:
w=b.index(x)
if w!=None:
d.append(x)
del b[w]
except:
b.append(x)
b=组(b)-组(d)
打印列表(b)
这也不会保持秩序将该>转过来,并丢弃第二行。或者首先使用一个集合。@JonathonReinhart你的意思是
=
,对吗?;)@是的,对不起,德摩根:-)忽略我评论中的“或使用集合”部分;我误解了问题陈述。然而,第一部分仍然站着。把>转过来,丢掉第二行。或者首先使用一个集合。@JonathonReinhart你的意思是=
,对吗?;)@是的,对不起,德摩根:-)忽略我评论中的“或使用集合”部分;我误解了问题陈述。然而,第一部分仍然有效,如果你想保持秩序,你可以做c=Counter(myList);如果c[x]==1]
或其他什么,nd=[x代表myList中的x。如果您想保持顺序,可以执行c=Counter(myList);如果c[x]==1]
或其他什么,则nd=[x代表myList中的x。