목록이 주어지면 모든 홀수 요소가 키를 갖고 짝수 요소가 값을 갖도록 주어진 목록을 사전으로 변환하는 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) (튜플 목록을 저장하기 위해)