我试图通过一次尝试从我的3个词典中获取一个随机密钥。
我在一行中尝试了三次代码,但这给了我三个不同的随机生成的值。
import random
print("Welcome to Blackjack(21) Card Game!")
backjack = 21
number_cards_points = {"2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9}
face_cards_points = {"J":10, "Q":10, "K":10}
acis_cards_points = {"A":1, "A":11}
print(random.choice(list(number_cards_points)))
我希望这三个词典中有一个单一的密钥值。我是初学者,如果你有一些先进的方法来实现它,请与我分享。谢谢
合并所有dict
s(保留您希望覆盖的顺序)。然后在random.choice
列表中使用items
。
import random
print("Welcome to Blackjack(21) Card Game!")
backjack = 21
number_cards_points = {"2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9}
face_cards_points = {"J":10, "Q":10, "K":10}
acis_cards_points = {"A":1, "A":11}
print(
random.choice(
list({
**number_cards_points,
**face_cards_points,
**acis_cards_points
}.items()
)
)
)
制作另一个列表并从中绘制可能会更好:
number_cards_points = {"2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9}
face_cards_points = {"J":10, "Q":10, "K":10}
acis_cards_points = {"A":1, "A":11}
import random
cards = "2 3 4 5 6 7 8 9 J Q K A".split()
# or use
# cards = list(number_cards_points) + list(face_cards_points) + list(acis_cards_points)
key = random.choice( cards )
print(key, number_cards_points.get(key,
face_cards_points.get(key,
acis_cards_points.get(key))))
输出:
5 5
K 10
3 3
J 10
9 9
number_cards_points.get(rnd,face_cards_points.get(rnd, acis_cards_points.get(rnd))))
查看所有词典,直到找到正确的词典,为绘制的键提供值