循环遍历字典元组中的所有键

时间:2017-09-08 02:50:57

标签: python dictionary tuples

我创建了以下词典和元组:

dict1 = {'a':1,'b':2}
dict2 = {'c':3,'d':4}
dict3 = {'e':5,'f':6}

tuple_purse = dict1, dict2, dict3

我想循环并打印出tuple_purse中所有词典中的所有键。我尝试了以下代码:

for key in tuple_purse:
    print(key)

for key,value in tuple_purse:
    print(key)

得到以下输出:

{'a': 1, 'b': 2}
{'c': 3, 'd': 4}
{'e': 5, 'f': 6}
a
c
e

有没有办法循环遍历所有键:a,b,c,d,e,f优雅?

感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用chain中的itertools

  

创建一个迭代器,它返回第一个iterable中的元素,直到它耗尽,然后进入下一个iterable,直到所有的iterables都用完为止。用于将连续序列作为单个序列进行处理

import itertools

dict1 = {'a':1,'b':2}
dict2 = {'c':3,'d':4}
dict3 = {'e':5,'f':6}

tuple_purse = dict1, dict2, dict3

for x in itertools.chain.from_iterable(tuple_purse):
    print(x)

答案 1 :(得分:0)

你可以试试这个:

dict1 = {'a':1,'b':2}
dict2 = {'c':3,'d':4}
dict3 = {'e':5,'f':6}
tuple_dict = {**dict1, **dict2, **dict3}
for i in tuple_dict:
    print(i, tuple_dict[i])

请注意,对于上述解决方案,如果两个或多个dicts中有多个同名的密钥,则代码将失败。

输出:

a 1
b 2
c 3
d 4
e 5
f 6

Python2解决方案

new_list = [dict1, dict2, dict3]
for d in new_list:
    for k in d:
        print k, d[k]

输出:

a 1
b 2
c 3
d 4
e 5
f 6

答案 2 :(得分:0)

也许是一个简单的快速加倍for?你还需要更多东西吗?

for ddict in tuple_purse:
    for key in ddict:
        print(key)