2015-12-21 37 views
0

以下是每值阵列中的多个密钥的示例字典:如何在for循环中访问多个字典键?

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 

如何在每次迭代中访问元组,但仍可访问值f或者例如:

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

我的最终目标是能够在每次迭代内索引元组。例如,在这个例子中,我将索引元组和访问的第二元组项目:

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


1 
45 
+1

您的代码为我工作。 '为K,V在{( 'CA',1):[1,2,3,4],( 'MT',45):[5,6,7,8]}。iteritems():打印ķ ''打印( 'MT',45)( 'CA',1)' – Aya

+1

Python版本您使用的?你的第一个代码示例在Python 2.7中打印出元组,并且我可以使用'key [0]'和'key [1]' – Jaco

回答

1

您可以使用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 
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)