2017-08-02 96 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]