List.remove跳过列表中的项目

时间:2017-04-01 04:37:49

标签: python list tuples

我在这个问题上已经抓了一个小时。我试图创建一个从元组列表中删除项目的函数是元组在位置1中包含0。

players = [('a', 1), ('b', 0), ('c', 1), ('d', 1), ('e', 1), ('f', 1),
           ('g', 0), ('h', 1), ('i', 1), ('j', 0), ('k', 0), ('l', 1)]

def splittuple(mylist):
    for counter, i in enumerate(mylist):
        print counter, 'original: '+ str(i)
        if i[1] == 0:
            players.remove(i)
    print players

它打印以下输出:

0 original: ('a', 1)
1 original: ('b', 0)
2 original: ('d', 1)
3 original: ('e', 1)
4 original: ('f', 1)
5 original: ('g', 0)
6 original: ('i', 1)
7 original: ('j', 0)
8 original: ('l', 1)
[('a', 1), ('c', 1), ('d', 1), ('e', 1), ('f', 1), ('h', 1), ('i', 1), ('k', 0), ('l', 1)]

我不确定为什么(' k',0)元组仍在列表中。它的i [1]值等于0,但看起来for循环正在跳过它。我原以为它会被删除。

如果用户连续传递两个位于第1位的0的元组,那么循环就会变得混乱。

0 个答案:

没有答案