在for循环中使用append填充lis

2024-04-25 00:36:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图编写一个基本的牌组洗牌程序,但当我试图调用牌组列表中的任何特定索引时,总是会出现越界错误。在

suits = ["spades", "diamonds", "hearts", "clubs"] 

deck = []
def createDeck(deck):
    for i in range(0,4):
        for j in range(0,13):
            c = str(j+1) + " of " + suits[i]
            return deck.append(c)

Tags: in程序列表fordef错误rangedeck
3条回答

您应该在所有循环之后返回名为“deck”的列表。在

suits = ["spades", "diamonds", "hearts", "clubs"] 
deck = []
def createDeck(deck): 
    for i in range(0,4): 
        for j in range(0,13): 
            c = str(j+1) + " of " + suits[i] 
            deck.append(c)
    return deck
suits = ["spades", "diamonds", "hearts", "clubs"]
deck = [] 
def createDeck(deck):
    for i in range(0,4):
        for j in range(0,13):
            c = str(j+1) + " of " + suits[i]
            return deck.append(c)

假设这就是您所拥有的,您的deck[]将只包含一个项,因为您在for循环的第一步从函数返回。失去了回报和你的好去处。在

如果您希望deck list没有先前的suits元素,那么在函数中定义deck,否则当您将suits作为参数传递时,deck将变成suits list。在

   suits = ["spades", "diamonds", "hearts", "clubs"]


    def createDeck(deck):
        deck=[]

        for i in range(0,4):
            for j in range(0,13):
                c = str(j+1) + " of " + suits[i]

                deck.append(c)
        return deck

    print(createDeck(suits))

输出:

^{pr2}$

相关问题 更多 >