パイソン |辞書キーをリストとして取得する

辞書が与えられた場合、辞書のキーをリストとして取得する 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 は反復処理できるオブジェクトです。

Python3




mydict> => {> 1> :> 'Geeks'> ,> 2> :> 'for'> ,> 3> :> 'geeks'> }> keysList> => list> (mydict.keys())> print> (keysList)>

出力

[1, 2, 3] 

プログラムの時間計算量は O(n) です。ここで、n は辞書内のキーの数です。

プログラムの空間計算量は O(n) です。ここで、n は辞書内のキーの数です。これは、プログラムが辞書内のキーと同じ数の要素を持つ新しいリスト オブジェクトを作成するため、追加のメモリが必要になるためです。

方法 2: Forループとappendメソッドを使用して辞書キーをリストとして取得します

このメソッドでは、 dict.keys() 関数 そして 追加する それらを list という名前の新しいリストに追加します。

Python3




# 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: リスト内包表記を使用して辞書キーをリスト化する

ここでは、Python のリスト内包表記を使用してコードを短縮してみます。

Python3




dict> => {> 1> :> 'Geeks'> ,> 2> :> 'for'> ,> 3> :> 'geeks'> }> keysList> => [key> for> key> in> dict> ]> print> (keysList)>

出力

[1, 2, 3] 

時間計算量: O(n)、n は辞書内のキーと値のペアの数です。
補助スペース: O(n)、キーと値を辞書に保存します。

方法 4: アンパックを使用してリストする辞書キー *

* を使用したアンパックは任意の反復可能なオブジェクトで機能し、辞書は反復処理時にキーを返すため、リスト リテラル内で使用することで簡単にリストを作成できます。

Python3




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() にマップされ、次に list に型キャストされます。

Python3




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() 関数をラムダ関数と組み合わせて使用​​することです。

これを行う方法の例を次に示します。

Python3




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 は辞書内のキーの数です。これは、辞書キーをリストとして取得するための簡潔かつ効率的な方法です。