繁体   English   中英

TypeError:列表索引必须是整数,而不是list

[英]TypeError: list indices must be integers, not list

def take_turn(Nplayers, hands, player, pile, turn):
    while finished(hands) is not True:
        pile.append(hands[player][0]) # this line
        hands[player].pop(0)
        while pile[-1] <= 10:
            print(turn, ':', '\nPile:', pile, '\nHands\n', '\n'.join(map(str, hands)), '\n')
            check_players(Nplayers, hands, player, pile, turn)
            turn += 1
            player = (player + 1) % Nplayers
            if len(hands[player]) == 0:
                hands.pop(player)
                Nplayers -= 1
                player = player % Nplayers
            pile.append(hands[player][0])
            hands[player].pop(0)
            if table[-1] > 10:
            break
        penalty_card(Nplayers, hands, player, pile, turn)
    return turn

用(#这行)标记的行返回标题中所述的错误,在我的程序中,我已将播放器初始设置为0,所以应该没有问题吧?

编辑:手是列表的列表,玩家是整数

如果提供了一个有效的代码示例,将容易得多。 似乎有许多具有副作用的功能。 也许您可以包括一些最少的模拟和如下所示的示例调用,以对该问题进行全面的,可运行的演示?

def finished(hands):
        if len(hands) == 0:
            return True
        return False


def check_players(*args, **kwargs):
    pass


def penalty_card(*args, **kwargs):
    pass


table = [9]


def take_turn(Nplayers, hands, player, pile, turn):
    while finished(hands) is not True:
        pile.append(hands[player][0]) # this line
        hands[player].pop(0)
        while pile[-1] <= 10:
            print(turn, ':', '\nPile:', pile, '\nHands\n', '\n'.join(map(str, hands)), '\n')
            check_players(Nplayers, hands, player, pile, turn)
            turn += 1
            player = (player + 1) % Nplayers
            if len(hands[player]) == 0:
                hands.pop(player)
                Nplayers -= 1
                player = player % Nplayers
            pile.append(hands[player][0])
            hands[player].pop(0)
            if table[-1] > 10:
                break
        penalty_card(Nplayers, hands, player, pile, turn)
    return turn


take_turn(Nplayers=1, hands=[[1,1,1], [1,1], [1]], player=0, pile=[5, 5], turn=3)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM