2017-09-08 5 views
1

사전 튜플과 튜플에있는 모든 키를 통해 반복 :나는 다음과 같은 사전을 만든

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) 

을 그리고 다음과 같은 출력 가지고 : 우아 f를, A, B, C, D, E :

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

모든 키를 통해 루프 방법이 있나요를?

감사합니다.

답변

0

간단한 빠른 이중 for으로 연속 시퀀스를 치료에 사용? 더 필요한 게 있니? 내가 실행할 때

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

사전이 키를 반복하므로 명시적인'.keys()'호출이 필요 없습니다. – mwchase

+0

@mwchase 가능한 한 명확하게하려고 시도합니다! – pstatix

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 
+0

안녕하세요, 나는 구문 오류를 가지고 : tuple_dict = {** dict1, ** dict2, ** dict3} 내가 운영하는 형식 오류 : tuple_dict = {dict1, dict2, dict3} –

+0

@ KaneChew는 파이썬 2에서 솔루션을 실행하고 있기 때문입니다. Python3을 사용해보십시오. 어쨌든 파이썬 2에 대한 해결책을 작성하겠습니다. – Ajax1234

+0

예, 저는 Jupyter Notebook의 로컬 세션에서 Python 2를 실행하고 있습니다. –

2

당신은 itertools에서 chain를 사용할 수 있습니다.

는이 소진 될 때까지 반복 가능 객체가 모두 소진 될 때까지, 다음, 다음 반복자로 진행 최초의 반복자의 요소를 반환하는 반복자를 확인합니다. 하나의 순서 아마도

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

당신은 튜플을 실제로 사용하지 않습니다. 튜플에'chain.from_iterable'을 사용할 것입니다. 'itertools.chain.from_iterable (tuple_purse)' –

+0

@PaulRooney 튜플 문법이 잘못된 이유는 무엇입니까? 나는 지금 2.7과 3.6에서 그것을 시도하고 잘 동작했다. – mwchase