2010-08-16 2 views
3

어떻게 가입 목록 튜플과 dict에 dict?어떻게 가입 목록 튜플과 dict에 dict?

['f','b','c','d'] (1,2,3) and {'a':'10'} 
d excluded for list be compatible with the tuple 

output {'f':'1','b':'2','c':'3','a':'10'} 
+1

일반적으로 이렇게하는 좋은 방법은 없습니다. 당신이 줄 수있는 조건이 있습니까? – aaronasterling

+0

출력이 유효한 사전이 아닙니다. 중복 키가 있습니다. 또한 목록의 데이터와 튜플을 명확하게 구분하는 사이의 논리를 만들어야합니다. – chryss

답변

7

당신은 너무 같은 키와 값에서 dict을 만들 수 있습니다

keys = ['a','b','c','d'] 
values = (1,2,3) 
result = dict(zip(keys, values)) # {'a': 1, 'c': 3, 'b': 2} 

그런 다음 당신이 당신의 질문의 첫 번째 부분을 수행합니다

result.update({ 'f' : 5 }) 
print result # {'a': 1, 'c': 3, 'b': 2, 'f': 5} 
1

다른 딕셔너리로 ​​업데이트 할 수 있습니다 :

dict(zip(['a','b','c','d'], (1,2,3))) 

그러나 질문의 ​​두 번째 부분에는 사전 형식에서 허용하지 않는 'a'의 두 번째 정의가 필요합니다. 사전에

>>> d = {} 
>>> d['e'] = 10 
>>> d 
{'e':10} 
0

키가 고유해야하므로이 부분 : 그러나, 당신은 항상 수동으로 추가 키를 설정할 수 있습니다 {'a':'1','a':'10'}이 불가능하다. 이 같은

l = ['a','b','c','d'] 
t = (1,2,3) 

d = {} 
for key, value in zip(l, t): 
    d[key] = value 
0

뭔가 : 여기

은 나머지 코드? 아무도는 튜플 항목이 str에로 변환 답을 주신 이후

>>> dict({'a':'10'}.items() + (zip(['f','b','c','d'],('1','2','3')))) 
{'a': '10', 'c': '3', 'b': '2', 'f': '1'} 
0

아직

>>> L=['f','b','c','d'] 
>>> T=(1,2,3) 
>>> D={'a':'10'} 
>>> dict(zip(L,map(str,T)),**D) 
{'a': '10', 'c': '3', 'b': '2', 'f': '1'} 
3
dict(zip(a_list, a_tuple)).update(a_dictionary) 

a_list이 목록 인 경우, a_tuple 당신의 튜플이고 a_dictionary이 사전이다.

편집 : 당신이 정말로 처음보다 문자열로 튜플의 숫자를 설정하고 싶다면 :

new_tuple = tuple((str(i) for i in a_tuple)) 

및 압축 기능에 new_tuple를 전달합니다.