我创建了以下词典和元组:
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优雅?
感谢。
答案 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)