如何在for循环中访问多个字典键?

How to access multiple dictionary keys within for loop?

以下是每个值数组有多个键的示例字典:

test_dict = {('CA', 1): [1,2,3,4], ('MT', 45): [5,6,7,8]}

我希望用 itertools 循环键会产生元组:

import itertools

for key, value in test_dict.iteritems():
    print key

然而,这会产生每个元组中的第一项

MT
CA

如何在每次迭代中访问元组但仍然可以访问值,例如:

('CA', 1)
('MT', 45)

我的终极目标objective 是能够在每次迭代中为元组编制索引。例如,在此示例中,我将索引元组并访问第二个元组项:

for key, value in test_dict.iteritems():
    print key[1]


1
45

您可以使用 list comprehension:

lst = [k for k,v in test_dict.items()]

输出:

[('MT', 45), ('CA', 1)]

获取lst的元素:

for i in lst:
        print (i)

输出:

('MT', 45)
('CA', 1)

...并获取元组的第一个元素:

for i in lst:
        print (i[0])

输出:

MT
CA

...或元组的第二个元素:

for i in lst:
    print (i[1])

输出:

45
1

改为使用 keys() 方法,这样:

>>> test_dict = {('CA', 1): [1,2,3,4], ('MT', 45): [5,6,7,8]}
>>> 
>>> test_dict.keys()
[('MT', 45), ('CA', 1)]
>>> for k in test_dict.keys():
    print k

('MT', 45)
('CA', 1)

或者甚至简单地说:

>>> for k in test_dict:
    print k


('MT', 45)
('CA', 1)