【发布时间】:2012-08-02 00:52:10
【问题描述】:
我刚学python(有VBA背景)。
为什么这本词典没有加载?我正在尝试制作一副完整的纸牌。
这是我的代码:
class Deck:
def load_deck(self):
suite = ('Spades', 'Hearts', 'Diamonds', 'Clubs')
rank = (2, 3, 4, 5, 6, 7, 8, 9, 10, "Jack", "Queen", "King", "Ace")
full_deck={}
for s in suite:
for r in rank:
full_deck.setdefault(s,r)
return full_deck
raw_deck = Deck()
raw_deck1 = raw_deck.load_deck()
print raw_deck1
这是我的输出:
{'Hearts': 2, 'Clubs': 2, 'Spades': 2, 'Diamonds': 2}
【问题讨论】:
-
这不是应该如何使用 setdefault...
d.setdefault(s,[]).append(r)是你想要的 -
你想要什么输出?
-
我正在尝试创建一本包含一副完整纸牌的字典。
-
如果您想要 52 对,则必须更改您的密钥。 . .在字典中,一个键只能有一个值。 . .所以按照你目前的方式,'Hearts' 只能有一个值。 . .如果你想要 52 对,你需要像 {'H2':2, 'H3':3, 之类的东西。 . . }
-
啊....有趣....因为我的方式重复了键..我需要一个完全独立的键用于整个甲板 0 到 51。是吗?
标签: python list dictionary for-loop