如何从嵌套字典中获取随机值?

问题描述 投票:1回答:3

因此,我对Python还是陌生的,现在尝试在一些书籍的帮助下自学。我目前正在研究一个个人项目,在其中模拟纸牌。我有一本字典,其中有四个嵌套字典代表每套西装,而对于每个字典,我都有会出现的所有卡片。

[我已经尝试寻找获取这些值的方法,但是我发现的所有内容都适用于Python 2.x,并且不再起作用,或者似乎只深入了一本字典。

deck = {
    'Spades': {'Aces': 1, 'Twos': 1, 'Threes': 1, 'Fours': 1, 'Fives': 1, 'Sixes': 1, 'Sevens': 1, 'Eights': 1, 'Nines': 1, 'Tens': 1, 'Jacks': 1, 'Queens': 1, 'Kings': 1},
    'Diamonds': {'Aces': 1, 'Twos': 1, 'Threes': 1, 'Fours': 1, 'Fives': 1, 'Sixes': 1, 'Sevens': 1, 'Eights': 1, 'Nines': 1, 'Tens': 1, 'Jacks': 1, 'Queens': 1, 'Kings': 1},
    'Hearts': {'Aces': 1, 'Twos': 1, 'Threes': 1, 'Fours': 1, 'Fives': 1, 'Sixes': 1, 'Sevens': 1, 'Eights': 1, 'Nines': 1, 'Tens': 1, 'Jacks': 1, 'Queens': 1, 'Kings': 1},
    'Clubs': {'Aces': 1, 'Twos': 1, 'Threes': 1, 'Fours': 1, 'Fives': 1, 'Sixes': 1, 'Sevens': 1, 'Eights': 1, 'Nines': 1, 'Tens': 1, 'Jacks': 1, 'Queens': 1, 'Kings': 1}
}

我想创建一个将返回随机卡的函数,并且可以使用random.choice(list(deck.keys()))从卡座变量中获得一个随机值,但是我无法深入这些词典,并且我觉得它真的很简单,并且我只是傻了。

python dictionary random
3个回答
2
投票

我可以使用random.choice(list(deck.keys()))从卡片组变量中获得一个随机值>

你为什么不重复一遍?首先,随机选择西服,然后随机选择卡片。

suit = random.choice(list(deck))
value = random.choice(list(deck[suit]))
print(suit, value)

例如,可能打印:

Diamonds Fives

((将键转换为列表时,可以省略.keys()。]

此外,我也不知道您是否需要这些值或这些值的用途,但是您可以使用deck[suit][value]这样访问每个卡的内部值,例如

print(deck[suit][value])

哪些印刷品:

1

0
投票

这是您要寻找的吗?


0
投票

首先,像现在一样随机选择西服。

© www.soinside.com 2019 - 2024. All rights reserved.