Append()和pop()麻烦

时间:2018-11-27 10:08:31

标签: python

当我尝试从列表中弹出X张卡片时,它说我无法从空列表中弹出,但是我敢肯定,然后列表应该已满!还有另一种方法吗

while len(dogs) > 0:                                      
    for i in range(0,CardAmount):                         
        playersDeck.append(dogs.pop(0))                   
        computersDeck.append(dogs.pop(0)) 

完整代码: https://dumptext.com/4HhdTFRj

Dogs.txt文件: https://dumptext.com/BPDsU9Hl

控制台错误:

playersDeck.append(dogs.pop(0))
IndexError: pop from empty list

1 个答案:

答案 0 :(得分:0)

在while循环的每次迭代中,您将CardAmount张卡片的数量分配给playersDeck,将CardAmount张卡片的数量分配给computerDeck,因此至少需要{{ 1}}就能进行循环。

因此,不必检查2*CardAmount,而必须检查if len(dogs) > 0,以便进行循环操作

if len(dogs) >= 2*CardAmount

顺便说一句,您不必做循环中的流行音乐,而是可以这样做:

while len(dogs) >= 2*CardAmount:                                      
    for i in range(0, CardAmount):                         
        playersDeck.append(dogs.pop(0))                   
        computersDeck.append(dogs.pop(0))