Python 如何在列表中找到重复的字符串?
我有一张有几个刺的列表,有些是重复的。我需要取出所有重复的字符串并将它们附加到一个新列表中。我该怎么做Python 如何在列表中找到重复的字符串?,python,python-3.x,Python,Python 3.x,我有一张有几个刺的列表,有些是重复的。我需要取出所有重复的字符串并将它们附加到一个新列表中。我该怎么做 list_i = ['a','b','a','c','a','c','g','w','s','c','d','a','b','c','a','e'] 使用OrderedDict获取一个没有副本的列表,然后从原始副本中删除这些副本 from collections import OrderedDict list_i = ['a','b','a','c','a','c','g','w','s'
list_i = ['a','b','a','c','a','c','g','w','s','c','d','a','b','c','a','e']
使用OrderedDict获取一个没有副本的列表,然后从原始副本中删除这些副本
from collections import OrderedDict
list_i = ['a','b','a','c','a','c','g','w','s','c','d','a','b','c','a','e']
non_dupes = list(OrderedDict.fromkeys(list_i))
dupes = list(list_i)
for d in non_dupes:
dupes.remove(d)
print(dupes)
#['a', 'a', 'c', 'c', 'a', 'b', 'c', 'a']
print(non_dupes)
#['a', 'b', 'c', 'g', 'w', 's', 'd', 'e']
你试过什么吗?请说明具体问题是什么。这似乎不必要地复杂。为什么不干脆用dups=listfilterlambda x:l.countx>1,好吧,你是对的,我并没有试图把事情复杂化,尽管有一个计数器,他们有一封信显示的次数,我编辑过,列表理解比整天都用计数器更好使用列表comp,就像你建议的那样,保留重复项,他想把它们移走,只保留那些重复的。我相信计数器方法会起作用,但上述方法可能是我能想到的最好的方法。然而,他从未说过要删除新的副本列表中的副本,尽管我同意这是一个合理的假设。