我刚刚学习 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}
最佳答案
JBernardo 的评论为您提供了 setdefault()
的正确用法,但您可以将循环简化为以下内容:
full_deck = {}
for s in suite:
full_deck[s] = rank
或者,如果您想要一个列表而不是元组,请使用list(rank)
。
一行:
full_deck = {s: rank for s in suite}
Python 2.6 或更低版本:
full_deck = dict((s, rank) for s in suite)
关于python - 在Python中使用嵌套for循环加载字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11804769/