我有以下代码。它正在工作,除非我有重复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
如何解决这一问题?
不要在您循环播放内容的同时修改列表。 'mylist.remove'使得列表缩短,但是你仍然在循环播放原始长度。 –
可能的重复:http://stackoverflow.com/questions/30565759/get-unique-values-in-list-of-lists-in-python –