2017-10-10 7 views
0

목록에서 목록의 딕셔너리를 만듭니다) 나는 (열거를 통해 목록의 딕셔너리를 생성 할 수 있습니다

def turn_to_dict(*args): 
    return {i: v for i, v in enumerate(args)} 


lst1 = [1, 2, 3, 4] 
lst2 = [3, 4, 6, 7] 
lst3 = [5, 8, 9] 


x = turn_to_dict(lst1, lst2, lst3) 

print(x) 

출력 : 나는 하나의 변화와 같은 일을 할

{0: [1, 2, 3, 4], 
1: [3, 4, 6, 7], 
2: [5, 8, 9] 
} 

: I

lst1 = ['a', 'b', 'c'] 
lst2 = [1, 2, 3, 4] 
lst3 = [3, 4, 6, 7] 
lst4 = [5, 8, 9] 


def turn_to_dict(lst, *args): 
    for k in lst: 
     return {k: v for v in args} 


x = turn_to_dict(lst1, lst2, lst3, lst4) 

print(x) 

나는 점점 오전 :

목록의 요소로 열쇠를 원하는
{'a': [5, 8, 9]} 

는 내가 원하는 것은 :

{a: [1, 2, 3, 4], 
b: [3, 4, 6, 7], 
c: [5, 8, 9] 
} 

난 그냥 출력 내가 점점되어야한다고 생각, 어떤 오류가 발생하지 않습니다.

답변

1

당신은 값과 함께 키 목록을 압축해야합니다 args에서 목록의 각각 lst의 요소까지

def turn_to_dict(lst, *args): 
    return {k: v for k, v in zip(lst, args)} 

이 쌍을.

는 모두 여기에 사전 이해를 사용할 필요가 있다는 dict() 직접 키 - 값 쌍의 반복 가능한 허용 : 당신은 사전 이해가 필요합니다에만 것

return dict(zip(lst, args)) 

을 경우 중 하나 key 또는 value 표현 2 값 튜플의 첫 번째 요소와 두 번째 요소에 대한 참조 이상이었습니다.

데모 :

>>> lst1 = ['a', 'b', 'c'] 
>>> lst2 = [1, 2, 3, 4] 
>>> lst3 = [3, 4, 6, 7] 
>>> lst4 = [5, 8, 9] 
>>> args = (lst2, lst3, lst4) 
>>> {k: v for k, v in zip(lst1, args)} 
{'a': [1, 2, 3, 4], 'b': [3, 4, 6, 7], 'c': [5, 8, 9]} 
>>> dict(zip(lst1, args)) 
{'a': [1, 2, 3, 4], 'b': [3, 4, 6, 7], 'c': [5, 8, 9]} 
1

당신이 모든 필요가 없습니다에서

def turn_to_dict(lst, *args): 
    return dict(zip(lst, args)) 

:

lst1 = ['a', 'b', 'c'] 
lst2 = [1, 2, 3, 4] 
lst3 = [3, 4, 6, 7] 
lst4 = [5, 8, 9] 
기능을 사용하여

dict(zip(lst1, [lst2,lst3, lst4])) 

을3210

출력 :

>>> turn_to_dict(lst1,lst2,lst3,lst4) 
{'a': [1, 2, 3, 4], 'c': [5, 8, 9], 'b': [3, 4, 6, 7]}