2017-08-02 22 views
0

我是Python的初學者,對於我所知道的,我可能會完全錯誤。我正在嘗試製作一款二十一點遊戲,並且只是想知道是否有任何方法根據列表中的項目使用值列表和for循環生成屬於類的一部分的項目。到目前爲止,我已經打印出每張卡片的值,但我們正努力將它們分配給Card類中的一個對象。Python - 根據列表項目生成具有變量名稱的對象

suits = ['Spades', 'Clubs', 'Hearts', 'Diamonds'] 
values = [2,3,4,5,6,7,8,9,10,'Ace','Jack','Queen','King'] 

class Card(object): 

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

正如我前面提到的,我所做的for循環,我使用的打印,我要分配給對象的值:

for cardSuit in suits: 
    for cardValue in values: 
     print cardSuit, cardValue 

如圖所示波紋管,我想使用卡片的名稱和卡片的名稱創建Card類的對象實例,然後將cardSuit和cardValue的值分配給對象。

for cardSuit in suits: 
    for cardValue in values: 
     cardSuit,cardValue = Card(suit = cardSuit,value = cardValue) 

任何意見或改進我可以在這裏做,將不勝感激,因爲我試圖教我如何使用Python和我堅持這一點。

回答

1

你可以試試這個:

cards = [Card(cardSuit, cardValue) for cardSuit in suits for cardValue in values] 

而且,你不必使用類,namedtuple可能會更好

from collections import namedtuple 
Card = namedtuple('Card', ['suit', 'value']) 
cards = [Card(cardSuit, cardValue) for cardSuit in suits for cardValue in values] 
相關問題