Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 字典-使用相应的值匹配随机键_Python_Python 3.x_Dictionary - Fatal编程技术网

Python 字典-使用相应的值匹配随机键

Python 字典-使用相应的值匹配随机键,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,这是一副假想的牌,即21点中的一副。 在定义手动值函数时需要帮助 facevalue={'A':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'10':10,'J':10,'Q':10,'K':10} deck = [key for key in self.facevalue.keys()]*4 card_values = [value for value in self.facevalue.values()]*4 当我弹出两张卡片时,我如

这是一副假想的牌,即21点中的一副。 在定义
手动值
函数时需要帮助

facevalue={'A':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'10':10,'J':10,'Q':10,'K':10}
deck = [key for key in self.facevalue.keys()]*4
card_values = [value for value in self.facevalue.values()]*4
当我弹出两张卡片时,我如何得到它们对应的值?问题是键和值在洗牌后不再在一起。说

import random
shuffled_deck = random.sample(deck, len(deck))
hand[0]
hand[1]
相对应的值是什么


让我重新表述一下——在分解字典之后,有没有办法将以前的键与其对应的值进行匹配?

deck
仅由键组成;要获得匹配的面值,只需再次查找:

def hand_value():
    hand = []
    for i in range(2):
        hand.append(shuffled_deck.pop())
    score = ???
    return score
为拾取的手生成值列表;您还可以使用
sum()
和生成器表达式生成它们的总和:

[facevalue[card] for card in hand]

使用<代码>卡/代码>对象将更容易保持面值和值。如果您不想再次查找,可以考虑将其存储为元组。另外,请看一下关于…洗牌的
shuffle
。我原以为一旦我把字典拆开,我就不能再查了,但它确实有用——谢谢。@AlvinLepik:你所做的只是从字典中提取信息;你从未更改过字典本身,也没有丢失对它的引用。
score = sum(facevalue[card] for card in hand)