python - 如何从嵌套字典中获取随机值?
问题描述
所以,我对 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()))
,但我无法进入那些字典,我觉得这真的很简单,我只是哑的。
解决方案
我可以从甲板变量中获得一个随机值,使用
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]
like访问每张卡内部的值
print(deck[suit][value])
哪个打印:
1
推荐阅读
- java - 根据距离添加和删除recyclerview的项目
- python - 在 Python 中重新排序列表中的值的算法
- angular-material - 在有角度的材质调色板(例如 $mat-indigo 或 $mat-pink)中,A100、A200、A400 和 A700 用于什么?
- android - @Entity 注解中无法解析的符号
- php - 如何替换 PHP 中的重音和小写字符?
- sql - 如何使用sql将两个不同的列数据显示在一列中?
- android - 如何使用可绘制的 xml 文件使用图层列表创建这样的波浪效果
- android - 从移动应用程序进行身份验证并从桌面应用程序访问文件
- geometry - 用于正则化或规范化应该是矩形的多边形的算法
- python - (Keras) TensorBoard 回调是否适用于打开 return_state 的循环网络?