如何复制列表中的项目?

How to duplicate items in a list?

刚开始学习 Python 作为第一个项目,我正在尝试创建一个 21 点游戏,其中一副牌有超过 1 副牌(副牌数由用户输入决定,其中:

suits = ["Clubs","Hearts","Diamonds","Spades"]
values = ["A","2","3","4","5","6","7","8","9","10","J","Q","K"]


class Card():
    def __init__ (self, suit, value):
        self.suit = suit
        self.value = value
    
    def show(self):
        print(self.value, self.suit)

class Deck():
    def __init__(self):
        self.cards=[]
        for suit in suits:
            for value in values:
                self.cards.append(Card(suit,value))

    def show(self):
        for card in self.cards:
            card.show()

class Shoes():
    def __init__(self):
        self.decknum = int(input("Enter the number of deck used in a shoes: "))
        self.shoes = {}
        for i in range(1, self.decknum+1):
            self.shoes[str(i)] = [Deck()]
        print(self.shoes) 

理想情况下,我想要一个包含 6 张纸牌的列表并将其制作成鞋子 class 但我不知道如何复制我的纸牌列表中的项目并将其转换为 class.

例如:shoe = ['A spades', 'A spades', 'A spades', 'A spades', 'A spades', 'A spades', '2 spades', ... 'K hearts']

然后 class Shoes():

首先,我在 __init__ 方法之外使用了 input。我还使用默认值将 suits 和 values 参数设置为 DeckShoes。这允许拥有只有红牌的特殊牌组,例如通过调用 Deck(suits=["Hearts", "Diamonds"]).

Shoes 所采用的方法与您用于 Deck 的方法完全相同。

DEFAULT_SUITS = ("Clubs","Hearts","Diamonds","Spades")
DEFAULT_VALUES = ("A","2","3","4","5","6","7","8","9","10","J","Q","K")


class Card():
    def __init__ (self, suit, value):
        self.suit = suit
        self.value = value
    
    def show(self):
        print(self.value, self.suit)

class Deck():
    def __init__(self, suits=DEFAULT_SUITS, values=DEFAULT_VALUES):
        self.cards = []
        for suit in suits:
            for value in values:
                self.cards.append(Card(suit,value))

    def show(self):
        for card in self.cards:
            card.show()

class Shoes():
    def __init__(self, decks, suits=DEFAULT_SUITS, values=DEFAULT_VALUES):
        self.cards = []
        for deck in range(decks):
            for suit in suits:
                for value in values:
                    self.cards.append(Card(suit,value))

    def show(self):
        for card in self.cards:
            card.show()


shoe = Shoes(int(input("Enter the number of deck used in a shoes: ")))
shoe.show()
suits = ["Clubs", "Hearts", "Diamonds", "Spades"]
values = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]


class Card:
    def __init__(self, suit, value):
        self.suit = suit
        self.value = value

    def show(self):
        print(self.value, self.suit)


class Deck:
    def __init__(self):
        self.cards = []
        for suit in suits:
            for value in values:
                self.cards.append(Card(suit, value))

    def show(self):
        for card in self.cards:
            card.show()


class Shoes:
    def __init__(self):
        self.decknum = int(input("Enter the number of deck used in a shoes: "))
        self.shoes = []
        for i in range(1, self.decknum + 1):
            self.shoes += Deck().cards

        self.shoes.sort(key=lambda x: x.value)
        for card in self.shoes:
            card.show()

s = Shoes()