我试图找到每个唯一数字中数字中重复(重复)数字的数量。例如。对于21311243,将有3 1和2 2和2 3,所以我只需要[3,2,2],其中顺序无关紧要。我试着这样做,如<div class="toggle-control" id="button1"><label for="cb">Click Me</label></div>
。以下代码适用于上述数字,我按预期得到number_list = ['2','1','3','1','1','2','4', '3']
。但是,对于213112433 repeated_numbers = [2, 2, 3]
出于某种原因,我不知道为什么会这样,以及如何纠正下面的代码:
repeated_numbers = [2, 3, 3, 2]
此外,我对更好的方法持开放态度,因为我的方式有repeated_numbers = [] #The number of repeated digits for each unique digit
for a in number_list:
i = 0
for b in number_list:
if (a == b):
i = i + 1
if i > 1: #If the particular digit is repeated
repeated_numbers.append(i)
number_list.remove(a) #Get rid of the digit that gets repeated from the list
复杂度,但需要将O(n^2)
视为字符列表。
答案 0 :(得分:0)
在迭代中删除列表中的元素不是一个好主意。 看看这个相关的问题:Remove items from a list while iterating
我建议使用列表理解来解决您的问题。
就您的计划中的具体错误而言,我认为您打算在执行remove
时删除特定号码的所有出现但不会发生的事情:
请注意:https://docs.python.org/2/tutorial/datastructures.html
list.remove(x)的
从列表中删除值为x的第一项。这是一个错误 如果没有这样的项目。