因此,我是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()))
从卡片组变量中获取一个随机值,但是我无法进入这些词典,我觉得它是真的很简单,我只是傻了。
答案 0 :(得分:2)
我可以使用
random.choice(list(deck.keys()))
从deck变量中获得一个随机值
您为什么不重复一遍?首先,随机选择西服,然后随机选择卡片。
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
答案 1 :(得分:0)
这是您要寻找的吗?
suit = random.choice(list(deck))
value = random.choice(list(deck[suit]))
例如:
from random import choice
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}}
suit = choice(list(deck))
value = choice(list(deck[suit]))
print(suit, value)
打印:
Clubs Sixes
答案 2 :(得分:0)
首先,像现在一样随机选择西装。
suit = random.choice(list(deck.keys()))
然后访问该特定西装的卡片词典,并以相同的方式随机选择卡片。
random.choice(list(deck[suit].keys()))