사전이 주어지면 사전 키를 목록으로 가져오는 Python 프로그램을 작성합니다.
예:
Input : {1:'a', 2:'b', 3:'c'} Output : [1, 2, 3] Input : {'A' : 'ant', 'B' : 'ball'} Output : ['A', 'B']> 방법 1: dict.keys()를 사용하여 사전 키를 목록으로 가져옵니다.
Python list() 함수는 모든 반복 가능 항목을 매개변수로 사용하고 목록을 반환합니다. Python에서 iterable은 반복할 수 있는 객체입니다.
파이썬3
mydict>=> {>1>:>'Geeks'>,>2>:>'for'>,>3>:>'geeks'>}> keysList>=> list>(mydict.keys())> print>(keysList)> |
>
>산출
[1, 2, 3]>
프로그램의 시간 복잡도는 O(n)입니다. 여기서 n은 사전의 키 수입니다.
프로그램의 공간 복잡도는 O(n)입니다. 여기서 n은 사전의 키 수입니다. 이는 프로그램이 사전의 키와 동일한 수의 요소로 새 목록 개체를 생성하기 때문에 추가 메모리가 필요하기 때문입니다.
자바의 큐와 우선순위 큐
방법 2: For 루프 및 추가 메서드를 사용하여 사전 키를 목록으로 가져옵니다.
이 방법에서는 다음을 사용하여 각 키를 반복합니다. dict.keys() 함수 그리고 추가 목록이라는 이름의 새 목록으로 이동합니다.
파이썬3
# Python program to get> # dictionary keys as list> def> getList(>dict>):> >list> => []> >for> key>in> dict>.keys():> >list>.append(key)> > >return> list> > # Driver program> dict> => {>1>:>'Geeks'>,>2>:>'for'>,>3>:>'geeks'>}> print>(getList(>dict>))> |
>
>산출
[1, 2, 3]>
시간 복잡도: O(n)
보조 공간: O(n)
방법 3: List Comprehension을 사용하여 나열할 사전 키
여기서는 Python의 목록 이해를 사용하여 코드를 단축해 보겠습니다.
파이썬3
dict> => {>1>:>'Geeks'>,>2>:>'for'>,>3>:>'geeks'>}> keysList>=> [key>for> key>in> dict>]> print>(keysList)> |
>
>산출
[1, 2, 3]>
시간 복잡도: O(n), 여기서 n은 사전의 키-값 쌍 수입니다.
보조 공간: O(n), 사전에 키와 값을 저장합니다.
방법 4: Unpacking with를 사용하여 나열할 사전 키 *
*를 사용한 압축 해제는 모든 반복 가능한 객체에서 작동하며 사전은 반복할 때 키를 반환하므로 목록 리터럴 내에서 이를 사용하여 쉽게 목록을 만들 수 있습니다.
파이썬3
def> getList(>dict>):> >return> [>*>dict>]> # Driver program> dict> => {>'a'>:>'Geeks'>,>'b'>:>'For'>,>'c'>:>'geeks'>}> print>(getList(>dict>))> |
>
>
산출:
['a', 'b', 'c']>
시간 복잡도: O(N)
보조공간 : O(N)
방법 5: itemgetter를 사용하여 나열할 사전 키
연산자 모듈의 itemgetter는 피연산자의 값을 사용하여 피연산자에서 항목을 가져오는 호출 가능한 객체를 반환합니다. __getitem__ () 방법. 이 메서드는 dict.items()에 매핑된 다음 목록에 유형 변환됩니다.
파이썬3
from> operator>import> itemgetter> def> getList(>dict>):> >return> list>(>map>(itemgetter(>0>),>dict>.items()))> # Driver program> dict> => {>'a'>:>'Geeks'>,>'b'>:>'For'>,>'c'>:>'geeks'>}> print>(getList(>dict>))> |
>
>
산출:
['a', 'b', 'c']>
방법 6: Map 및 람다 사용
사전 키를 목록으로 가져오는 또 다른 방법은 map() 함수를 람다 함수와 함께 사용하는 것입니다.
다음은 이를 수행하는 방법의 예입니다.
파이썬3
def> get_keys_as_list(dictionary):> >return> list>(>map>(>lambda> x: x[>0>], dictionary.items()))> # Driver program> dictionary>=> {>1>:>'Geeks'>,>2>:>'for'>,>3>:>'geeks'>}> print>(get_keys_as_list(dictionary))> #This code is contributed by Edula Vinay Kumar Reddy> |
>
>산출
[1, 2, 3]>
이 접근 방식은 map() 함수를 사용하여 사전의 각 항목에 람다 함수를 적용하고 각 항목의 키를 반환합니다. 그런 다음 결과 반복자 객체가 list() 함수에 전달되어 키 목록을 만듭니다.
이 접근 방식은 O(n)의 시간 복잡도와 O(n)의 보조 공간 복잡도를 갖습니다. 여기서 n은 사전의 키 수입니다. 이는 사전 키를 목록으로 가져오는 간결하고 효율적인 방법입니다.