listsal2 = [1,2,2,3,3,4,5,6,7,8]
listsal3 = []
counter = 0
for i in listsal2:
item = listsal2.count(i)
if item > 1:
counter = item
while counter > 1:
listsal3.append(i)
counter = counter - 1
print (listsal3)
我一直在做一个mode函数,但是出于某种原因,它会保留列表中的最后几个数字,并且列表中的项目越多,不被删除的项目就越多。你知道吗
编辑:刚刚意识到我忘记了代码的第二部分,现在在
EDIT2:代码缩小了,更容易阅读
EDIT3:更改代码,使重复的数字进入一个新的列表,但它有列表项的多个金额
多谢大家的帮助,我想我现在已经拿到了
在您的例子中,即使您考虑了
i=2
一次,您也会再次检查列表中的2,因为它存在多次。这就是为什么2和3会在listsal3
中出现两次。相反,您只需要为每个唯一的项目浏览一次列表。你知道吗要从列表中获取唯一项,请将其转换为一个集合。你知道吗
另一种方法是: 只需保留一个包含每个唯一元素的计数的列表,取其最大值,并追溯到它对应的元素。你知道吗
您在迭代列表时正在修改它。通常不建议这样做,因为这样会中断迭代。你知道吗
如果要删除所有单个和重复的元素,请执行以下代码:
这将保留原始列表中的顺序。你知道吗
相关问题 更多 >
编程相关推荐