Python - 在dict上循环。在dict中搜索元素

时间:2016-02-23 13:50:20

标签: python list dictionary

IDAX = [3, 8, 10, 12]
AXID = [3, 5, 6, 8, 10, 12]
BT = [1, 1, 1, 1, 0, 0]

BT = [str(x) for x in BT]

AX_BR = dict(zip(AXID, BT))

结果:

{3: '1', 5: '1', 6: '1', 8: '1', 10: '0', 12: '0'}

现在我希望IDAX中的每个元素都具有正确的BT值。

如何搜索dictonary中的元素?

谢谢!

3 个答案:

答案 0 :(得分:2)

您使用列表var名称与迭代var名称相同。

>>> IDAX = [3, 8, 10, 12]
>>> AXID = [3, 5, 6, 8, 10, 12]
>>> BT = [1, 1, 1, 1, 0, 0]
>>> BT = [str(x) for x in BT]
>>> AX_BR = dict(zip(AXID, BT))
>>> print AX_BR
{3: '1', 5: '1', 6: '1', 8: '1', 10: '0', 12: '0'}
>>> {i: AX_BR[i] for i in IDAX}
{3: '1', 8: '1', 10: '0', 12: '0'}

答案 1 :(得分:0)

无需绕过字典;你想要的是非常基本的字典用法:

>>> BT[8]
'1'

或者,如果您的意思是想要一对配对列表(IDAX,BT):

[(idax, BT[idax]) for idax in IDAX]

答案 2 :(得分:-1)

我认为我用循环解决了这个问题。

j = []
for i in range(len(IDAX)):
    j += AX_BR[(IDAX[i])]
print(j)

可能不是最好的解决方案,但它有效。