Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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 在21点中查找多个手的总数_Python_Python 3.x - Fatal编程技术网

Python 在21点中查找多个手的总数

Python 在21点中查找多个手的总数,python,python-3.x,Python,Python 3.x,我有一个21点游戏的多手 前 我试图通过将每只手的值引用到一个组值字典来获得它的值: deckValue = {'AH':11, '2H':2,'3H':3, '4H':4, '5H':5, '6H': 6, '7H': 7, '8H':8, '9H':9, 'TH':10, 'JH':10, 'QH':10, 'KH':10, 'AC':11, '2C':2,'3C':3, '4C':4, '5C':5, '6C':6,'7C': 7, '8C':8, '

我有一个21点游戏的多手

我试图通过将每只手的值引用到一个组值字典来获得它的值:

deckValue = {'AH':11, '2H':2,'3H':3, '4H':4, '5H':5, '6H': 6, '7H': 7, '8H':8, 
         '9H':9, 'TH':10, 'JH':10, 'QH':10, 'KH':10, 'AC':11, '2C':2,'3C':3,
         '4C':4, '5C':5, '6C':6,'7C': 7, '8C':8, '9C':9, 'TC':10, 'JC':10, 
         'QC':10, 'KC':10, 'AS':11, '2S':2,'3S':3, '4S':4, '5S':5, '6S': 6, 
         '7S': 7, '8S':8, '9S':9, 'TS':10, 'JS':10, 'QS':10, 'KS':10, 
         'AD':11, '2D':2,'3D':3, '4D':4, '5D':5, '6D': 6, '7D': 7, '8D':8, 
         '9D':9, 'TD':10, 'JD':10, 'QD':10, 'KD':10}
在字典中查找值可以通过

deckvalue.get(键)

价值[关键]

其中key是每只手上的字符串,例如deckvalue.get('AH')=11

为了实现我想要做的,我使用for循环遍历每只手并找到总值

def calculate_hand(pHands):
    # What I have so far
    total = 0
    for i in pHands:
        deckValue.get(pHands[i][0])
        deckValue.get(pHands[i][1])
        total = #value of 0 + value of 1 
return
其中,pHands是:

pHands = [['AD', 'AS'], ['6C', '3D'], ['TD', 'AH']]
但我得到了一个“列表索引必须是整数,而不是列表”错误

我是Python新手,所以我不知道这是什么(但这可能是因为phand包含str元素而不是int元素)

我怎样才能得到每手牌的个人总数

例如

我是否需要分配一个新变量来保存每个手的总数


谢谢你的意见

如果在列表上进行迭代,则不会得到索引,但实际上是列表元素。更好:

def calculate_hand(pHands):
    # What I have so far
    values = []
    for (card1, card2) in pHands:
        total = deckValue.get(card1) + deckValue.get(card2)
        values.append(total)
    return values
此外,还有一种更简洁的方法来计算卡的价值:

def getvalue(card):
    val = card[0]
    return 11 if val=="A" else 10 if val in "TQKJ" else int(val)
如果你有这样一个函数,你实际上可以在单列表中编写整个
calculate\u hand
函数:

def calculate_hand(pHands):
    return [getvalue(card1) + getvalue(card2) for (card1, card2) in pHands]

如果在列表上进行迭代,则不会得到索引,实际上是列表元素。请尝试在循环中打印
i
。这将得到每只手的组合总数,而不是每只手的单独总数separately@depperm啊,我明白了,我以为那就是目标。给我一秒钟。
def getvalue(card):
    val = card[0]
    return 11 if val=="A" else 10 if val in "TQKJ" else int(val)
def calculate_hand(pHands):
    return [getvalue(card1) + getvalue(card2) for (card1, card2) in pHands]