logo

목록을 사전 Python으로 변환

목록이 주어지면 모든 홀수 요소가 키를 갖고 짝수 요소가 값을 갖도록 주어진 목록을 사전으로 변환하는 Python 프로그램을 작성합니다. 이후 파이썬 사전이 순서가 지정되어 있지 않으면 출력 순서는 상관없습니다.



  Input :    ['a', 1, 'b', 2, 'c', 3]   Output:   {'a': 1, 'b': 2, 'c': 3}   Explaination  : In the input we have a list of element which then is conerted into key value pairs of dictonary in the output>

목록을 사전 Python으로 변환

이 기사에서 다룰 방법은 다음과 같습니다.

루프를 사용하여 목록을 사전으로 변환

이 방법은 빈 항목을 초기화하여 작동합니다. 사전 그런 다음 2단계에서 목록을 반복합니다. 각 반복에서 키-값 쌍은 현재 요소를 키로, 다음 요소를 값으로 사용하여 사전에 추가됩니다. 마지막으로 사전이 결과로 반환됩니다.

파이썬3








def> convert(lst):> >res_dict>=> {}> >for> i>in> range>(>0>,>len>(lst),>2>):> >res_dict[lst[i]]>=> lst[i>+> 1>]> >return> res_dict> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(convert(lst))>

>

>

산출

{'a': 1, 'b': 2, 'c': 3}>

시간 복잡도: O(n), 여기서 n은 입력 목록의 길이입니다.
보조 공간: O(n), 여기서 n은 입력 목록의 길이입니다.

사전 대화 목록 dict Comprehension 사용하기

목록을 사전으로 변환하려면 다음을 사용할 수 있습니다. 사전 이해 연속 요소의 키:값 쌍을 만듭니다. 마지막으로 목록을 다음과 같이 입력합니다. 딕셔너리 유형.

자바 xor

파이썬3




def> Convert(lst):> >res_dct>=> {lst[i]: lst[i>+> 1>]>for> i>in> range>(>0>,>len>(lst),>2>)}> >return> res_dct> > # Driver code> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(Convert(lst))>

>

>

산출

{'a': 1, 'b': 2, 'c': 3}>

시간 복잡도: O(n), 여기서 n은 입력 목록의 길이입니다.
보조 공간: O(n), 여기서 n은 입력 목록의 길이입니다.

목록을 사전으로 변환 ~에 노래하다 지퍼() 방법

먼저 반복자를 만들고 변수 'it'으로 초기화합니다. 그런 다음 사용 지퍼 방법 , 키와 값을 함께 압축합니다. 마지막으로 다음과 같이 타입캐스트합니다. 딕셔너리 유형.

파이썬3




def> Convert(a):> >it>=> iter>(a)> >res_dct>=> dict>(>zip>(it, it))> >return> res_dct> # Driver code> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(Convert(lst))>

>

>

산출

{'a': 1, 'b': 2, 'c': 3}>

시간 복잡도: O(n), 여기서 n은 입력 목록 a의 길이입니다.
보조 공간: O(n), 여기서 n은 입력 목록 a의 길이입니다.

Lambda 함수를 사용하여 사전 대화 나열

먼저 배열 분할을 사용하여 키와 값의 배열을 만듭니다. 그런 다음 지도 방법 ~와 함께 람다 키 값 paris를 사용하여 튜플 배열을 형성합니다. 마지막으로 dict 유형으로 타입캐스트합니다.

파이썬




def> Convert(lst):> >res_dct>=> map>(>lambda> i: (lst[i], lst[i>+>1>]),>range>(>len>(lst)>->1>)[::>2>])> >return> dict>(res_dct)> # Driver code> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(Convert(lst))>

>

>

산출

{'a': 1, 'c': 3, 'b': 2}>

시간 복잡도: O(n), 여기서 n은 사전에 있는 키-값 쌍의 수입니다.
보조 공간: O(n): 키와 값을 사전에 저장합니다.

목록을 사전으로 변환 목록 이해 및 슬라이싱 사용

일부분 lst[::2]를 사용하여 키 목록을 가져오기 위한 입력 목록입니다. 이는 목록의 첫 번째 요소부터 시작하여 모든 두 번째 요소를 가져옵니다. lst[1::2]를 사용하여 입력 목록을 분할하여 값 목록을 가져옵니다. 이는 목록의 두 번째 요소부터 시작하여 두 번째 요소를 모두 사용합니다. 다음을 사용하여 사전을 만듭니다. 사전 이해 이는 키 목록의 인덱스를 반복하고 각 키를 값 목록의 해당 값과 쌍을 이룹니다.

결과 사전을 반환합니다.

파이썬3




def> convert(lst):> >keys>=> lst[::>2>]># slice the list to get keys> >values>=> lst[>1>::>2>]># slice the list to get values> >res_dict>=> {keys[i]: values[i]>for> i>in> range>(>len>(keys))}> >return> res_dict> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(convert(lst))># {'a': 1, 'b': 2, 'c': 3}>

>

>

산출

{'a': 1, 'b': 2, 'c': 3}>

시간 복잡도: 에)
보조 공간: 에).

Itertools를 사용하여 목록을 사전으로 변환

가져오기 itertools 기준 치수 .사용 zip_longest() 원래 목록에서 튜플 목록을 만드는 함수입니다. 이 함수는 목록의 길이가 홀수인 경우에도 요소를 쌍으로 그룹화합니다. 사전 이해를 사용하여 튜플 목록에서 사전을 만듭니다. 사전을 반환합니다.

다음은 위의 접근 방식을 구현한 것입니다.

파이썬3




import> itertools> def> convert(lst):> >pairs>=> itertools.zip_longest(>*>[>iter>(lst)]>*> 2>, fillvalue>=>None>)> >dct>=> {key: value>for> key, value>in> pairs}> >return> dct> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(convert(lst))>

>

>

산출

{'a': 1, 'b': 2, 'c': 3}>

시간 복잡도: 에)
보조 공간: O(n) (튜플 목록을 저장하기 위해)