首页 > 解决方案 > 如何在函数中引用列表?

问题描述

我正在尝试使用for循环来做到这一点:当stack number = 'Stack 1'西装类型为“西装A”时,它将card_red按照第一个列表中第三项中指定的次数运行该函数(9)

game1 = \
[['Stack 1', 'Suit A', 9, 6],
['Stack 2', 'Suit B', 5, 0]]


def deal_cards():
    if     == 'Stack 1':
        if      == 'Suit A':
            for i in range(     ):
                card_red(stack1_xpos, stack1_ypos)

那么我在每个“if”语句之后和 range() 括号中放什么?

标签: python

解决方案


看来您有一个列表列表。使用带方括号的索引表示法来访问列表的各个元素。

def deal_cards():
    if game1[0][0] == 'Stack 1':
        if game1[0][1] == 'Suit A':
            for i in range(game1[0][2]):
                card_red(stack1_xpos, stack1_ypos)

请注意,在每种情况下,首先我使用索引[0]来访问第一个子列表,然后使用第二个索引来访问单个元素。请记住,第一项的索引为 0,第二项的索引为 1,依此类推。

如果您想对每个子列表重复此操作,则将其作为参数传递给更容易deal_cards

def deal_cards(game):
    if game[0] == 'Stack 1':
        if game[1]== 'Suit A':
            for i in range(game[2]):
                card_red(stack1_xpos, stack1_ypos)


for game in game1:
    deal_cards(game)

现在请注意,函数中只有单索引访问,而之前有双索引访问。这是因为game变量在调用时已经包含一个子列表。


推荐阅读