查找ineger中重复数字的数量时输出不正确

时间:2015-09-28 23:21:10

标签: python

我试图找到每个唯一数字中数字中重复(重复)数字的数量。例如。对于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)视为字符列表。

1 个答案:

答案 0 :(得分:0)

在迭代中删除列表中的元素不是一个好主意。 看看这个相关的问题:Remove items from a list while iterating

我建议使用列表理解来解决您的问题。

就您的计划中的具体错误而言,我认为您打算在执行remove时删除特定号码的所有出现但不会发生的事情:

请注意:https://docs.python.org/2/tutorial/datastructures.html

  

list.remove(x)的

     

从列表中删除值为x的第一项。这是一个错误   如果没有这样的项目。