我是python的初学者,据我所知,我可能完全错了。我正在尝试制作一个二十一点游戏,只是想知道是否有任何方法可以使用值列表和基于列表中项目的for循环生成属于类的一部分。到目前为止,我已经打印了每个卡值,但我很难将它们分配给Card类中的对象。
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并且坚持使用这个。
答案 0 :(得分: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]