Python遍历字典

时间:2020-06-02 19:22:03

标签: python dictionary

我有下面的字典

x_wins = {'row1_X': 'X' == x_o[0] and 'X' == x_o[1] and 'X' == x_o[2],
'row2_X' : 'X' == x_o[3] and 'X' == x_o[4] and 'X' == x_o[5],
'row3_X' : 'X' == x_o[6] and 'X' == x_o[7] and 'X' == x_o[8],
'col1_X' : 'X' == x_o[0] and 'X' == x_o[3] and 'X' == x_o[6],
'col2_X' : 'X' == x_o[1] and 'X' == x_o[4] and 'X' == x_o[7],
'col3_X' : 'X' == x_o[2] and 'X' == x_o[5] and 'X' == x_o[8],
'slant1_X' : 'X' == x_o[0] and 'X' == x_o[4] and 'X' == x_o[8],
'slant2_X' : 'X' == x_o[2] and 'X' == x_o[4] and 'X' == x_o[6]
}

,我想检查是否有任何键为True。我该怎么做?谢谢。

3 个答案:

答案 0 :(得分:1)

您可以检查任何词典值是否为真:

< field regexp = "text\".+\"text" >

您也可以像这样使用if True in x_wins.values(): print("Success!") else: print("All False...") any

如果要获取值为True的密钥,则:

if any(x_wins.values()): ...

这将给出所有值为True的键的列表。

答案 1 :(得分:1)

如果我理解正确,则可以使用列表推导找到“ True”键:

true_keys = [x for x in x_wins if x_wins[x] == True]

示例:

x_o =['X','X','X',0,0,0,'X','X','X']
x_wins = {'row1_X': 'X' == x_o[0] and 'X' == x_o[1] and 'X' == x_o[2],
'row2_X' : 'X' == x_o[3] and 'X' == x_o[4] and 'X' == x_o[5],
'row3_X' : 'X' == x_o[6] and 'X' == x_o[7] and 'X' == x_o[8],
'col1_X' : 'X' == x_o[0] and 'X' == x_o[3] and 'X' == x_o[6],
'col2_X' : 'X' == x_o[1] and 'X' == x_o[4] and 'X' == x_o[7],
'col3_X' : 'X' == x_o[2] and 'X' == x_o[5] and 'X' == x_o[8],
'slant1_X' : 'X' == x_o[0] and 'X' == x_o[4] and 'X' == x_o[8],
'slant2_X' : 'X' == x_o[2] and 'X' == x_o[4] and 'X' == x_o[6]
}
true_keys = [x for x in x_wins if x_wins[x] == True]
print(true_keys)

输出:

['row1_X', 'row3_X']

答案 2 :(得分:0)

您可以使用any函数来做到这一点。

如果x_wins字典的任何值为True,则以下内容将打印win

if any(x_wins.values()):
    print('win!')