Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在列表中找到重复的字符串?_Python_Python 3.x - Fatal编程技术网

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,就像你建议的那样,保留重复项,他想把它们移走,只保留那些重复的。我相信计数器方法会起作用,但上述方法可能是我能想到的最好的方法。然而,他从未说过要删除新的副本列表中的副本,尽管我同意这是一个合理的假设。