python - 在Python中使用嵌套for循环加载字典

标签 python list dictionary for-loop

我刚刚学习 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/

相关文章:

python - 将 URL 的内容保存到文本文件

python - Discord.py 赋予用户角色 - 'User' 对象没有属性 'guild'

list - 如何将 ArrayList 分配给列表?

swift - 检查字符串中的字符在字典中是否匹配

java - 哪种Java数据结构最适合双向多值映射

java - 在Hbase中存储列表数据?

python - 如何将数据部分地拟合到机器学习模型中?

python - 如何将两个或多个计数器合并到一个字典中?

list - 带有委托(delegate)构造函数的构造函数初始化列表执行顺序

python - 根据键过滤Python中的字典列表