问题描述
|
您好,我有一个循环,该循环对我的MysqL数据库中的不同记录进行计数,然后将数字保存到列表中。这是清单:
[1L,2L,5L,4L,1L,3L,1L]
现在我遍历此列表,我只想保留单个数字(表示1L,2L等),我正在使用此循环:for number in legend:
print number # to check what number it does currently
counter = legend.count(number)
while counter > 1:
legend.remove(number)
counter -= 1
然后我看到它检查1,2,3,4,1 ...为什么呢?为什么这个循环不会检查数字5?最后,列表如下所示:
[5L,1L]
这意味着它可以工作,但是为什么它不能进入第5位呢?
提前
解决方法
只需将其放入
set
中即可。
>>> foo = [1,1,2,3,4,6,5,6]
>>> set(foo)
set([1,6])
这将自动过滤掉所有重复项。也许您甚至可以跳过列表,将其放在第一位a3ѭ中。
,您可能会遇到以下问题:
list = [1,4]
for l in list:
print \"Elem \",l
if l == 2:
list.remove(1)
给出输出:
Elem 1
Elem 2
Elem 4
列表是在循环中修改的,在删除已循环遍历的某些元素时,您将跳过列表中的一个元素。