我有下面的代码。它的工作,除非我有一个重复3次或更多的重复,程序是考虑作为一个新的数字元素,并显示它两次。如何解决这个问题
import collections
mylist = [1,2,3,4,5,5,6,7,7,7,8,9]
i = 0
count = 0
for i in range(len(mylist)):
print1 = mylist.count(mylist[i])
if print1 > 1:
print("Duplicate Element: " , mylist[i])
print("It is repeated " , print1, "times")
mylist.remove(mylist[i])
count += 1
i += 1
我得到的结果是
Duplicate Element: 5
It is repeated 2 times
Duplicate Element: 7
It is repeated 3 times
Duplicate Element: 7
It is repeated 2 times
Traceback (most recent call last):
File "C:/Users/sanantha/Documents/Python/Lab6/task3.py", line 10, in <module>
print1 = mylist.count(mylist[i])
IndexError: list index out of range
如何解决这个问题
使用collections.Counter,它是为此而构建的:
你的代码需要一个补丁。最好的方法是使用^{}
下面是另一种方法,使用
itertools.groupby
:输出:
相关问题 更多 >
编程相关推荐