如何在 def 函数中移动到列表的下一个字符串?

问题描述 投票:0回答:1

我正在制作二十一点游戏,需要生成随机牌组。我将每个牌号与每个花色组合起来,直到拥有全部 52 张牌。在我的 def 函数中组合每个卡号和花色,在制作一张卡后,我试图移动到我的卡皮和卡花列表中的下一个字符串。我尝试过使用 next() 函数来执行此操作,但我不知道如何正确使用它们。

import random   #Allows for deck to be shuffled.

def cardsuitandpip(cardpiplist, cardsuitlist):
    for i in range(0, 52):
        card = str(cardpiplist[0] + " of " + cardsuitlist[0])
        deck.append(card)

cardpips = ["2", "2", "2", "2", "3", "3", "3", "3", "4", "4", "4", "4", "5", "5", "5", "5", "6", "6", "6", "6", "7", "7", "7", "7", "8", "8", "8", "8", "9", "9", "9", "9", "10", "10", "10", "10", "Jack", "Jack", "Jack", "Jack", "Queen", "Queen", "Queen", "Queen", "King", "King", "King", "King", "Ace", "Ace", "Ace", "Ace"]
cardsuits = ["Spades", "Clubs", "Hearts", "Diamonds", "Spades", "Clubs", "Hearts", "Diamonds", "Spades", "Clubs", "Hearts", "Diamonds", "Spades", "Clubs", "Hearts", "Diamonds", "Spades", "Clubs", "Hearts", "Diamonds", "Spades", "Clubs", "Hearts", "Diamonds", "Spades", "Clubs", "Hearts", "Diamonds", "Spades", "Clubs", "Hearts", "Diamonds", "Spades", "Clubs", "Hearts", "Diamonds", "Spades", "Clubs", "Hearts", "Diamonds", "Spades", "Clubs", "Hearts", "Diamonds", "Spades", "Clubs", "Hearts", "Diamonds", "Spades", "Clubs", "Hearts", "Diamonds"]
deck = []

deckgenerator = (cardsuitandpip(cardpips, cardsuits))
python list function
1个回答
0
投票

您的代码距离成功仅一步之遥(如下更改您的相应代码):

card = str(cardpiplist[i] + " of " + cardsuitlist[i])

此外,您可以简化代码(达到相同的结果):

cardpips = [val for val in ["2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace"] for i in range(4)]
cardsuits = 13 * ["Spades", "Clubs", "Hearts", "Diamonds"]
© www.soinside.com 2019 - 2024. All rights reserved.