Pythonで辞書キーをリストとして返す方法は?

この記事の翻訳:Pythonでリストとして辞書キーを返す方法は?

アンでのPython 2.7、I GETでき辞書のキー、または項目 A一覧AS: のPython 2.7は、私が辞書に置くことができ、キー、またはアイテムリストとして取得します:

>>> newdict = {1:0, 2:0, 3:0}
>>> newdict.keys()
[1, 2, 3]

さて、中にはPython> = 3.3、このようなIのGETの何かが: さて、中にはPython> = 3.3で、私は、次のメッセージが表示されます。

>>> newdict.keys()
dict_keys([1, 2, 3])

だから、私はリストを取得する ためにこれをしなければなりません:したがって、私はリストを取得するためにこれをしなければなりません

newlist = list()
for i in newdict.keys():
    newlist.append(i)

「M Iを思って、でA一覧には良い方法のリターンがあるのPython 3が 私が知りたいのは、より良い方法があるのPython 3のリストに戻るには?


#1階

参照:https : //stackoom.com/question/18ZRm/ Pythonでリストとして辞書キーを返す方法


#2F

試してみるlist(newdict.keys()) 試してみてくださいlist(newdict.keys())

ウィルでは、このために変換でdict_keysAリストにオブジェクト。 これがしますdict_keysリストにオブジェクト。

逆に、 大事なの か、大事なのかを自問すべきです。ダックタイピング仮定するコードにPython的な方法で(IS ITがアヒルのように見える場合とITがAのアヒルのように鳴く、ITはアヒルだ)。 Pythonのエンコーディングが想定されているアヒルの入力(それはアヒルの呼び出しのよういんちきアヒルのように見える、とあれば、それはアヒルです)。 で、dict_keysほとんどの目的のためのAリストのようなウィルACTによってオブジェクト。 dict_keys、オブジェクトの役割リストに似ています。 例えば: 例えば:

for key in newdict.keys():
  print(key)

明らかに、挿入演算子は機能しないかもしれませんが、とにかく辞書キーのリストにはあまり意味がありません。 明らかに、挿入演算子は機能しないかもしれませんが、辞書キーワードリストの場合、あまり意味がありません。


#3階

定義『タイピングのダック』 OFF A ON「ビット- dict.keys()リストAはありませんが、同じようAN反復処理可能なオブジェクトを返しますオブジェクト。 『鴨の種類』で定義されてdict.keys()離れるdict.keys()というリストのようなオブジェクトよりも、イテレータオブジェクトを返します。 iterableが機能する場所ならどこでも機能しますが、リストが機能する場所では機能しません リストも反復可能ですが、反復可能ではないリスト(またはシーケンス...)リストも反復可能ですが、反復可能ではあり ません(またはシーケンス...)

実際のユースケースでは、dictのキーを使用する最も一般的なことは、それらを反復することです。 その ため、これは理にかなっています。実際のユースケースでは、辞書のキーに関連する最も一般的なことは、それらをトラバースすることです。だからそれは理にかなっています。あなたは彼らとAS A CANコールリストを必要としない場合list() あなたが本当にリストとしてそれらを必要とする場合は、呼び出すことができますlist()

同様に、非常にためにzip()- ? -ほとんどの場合では、ITを経由繰り返されるタプルちょうどその時それが離れて再びなぜITを通じて新しい新しいANリスト全体と反復を作成するために、スローの zip()非常に似て-ほとんどの状況で、それは意志反復する-反復するだけで破棄するために、タプル全体の新しいリストを作成したのはなぜですか?

これは、Pythonの大きな傾向の一部であり、 リストのコピーをあちこちにコピーするのではなく、より多くのイテレータ(およびジェネレータ)を使用します。これはどこでもリストのコピーを使用する代わりに、Pythonでより多くのイテレータ(およびジェネレータ)を使用することです。メガトレンドの一部。

dict.keys()内包表記で動作するはずですが、タイプミスなどを慎重に確認してください...私にとっては問題なく動作します。 タイプミスがある場合は、理解できるように確認してください... 私にとってはうまくいきますdict.keys()

>>> d = dict(zip(['Sounder V Depth, F', 'Vessel Latitude, Degrees-Minutes'], [None, None]))
>>> [key.split(", ") for key in d.keys()]
[['Sounder V Depth', 'F'], ['Vessel Latitude', 'Degrees-Minutes']]

#4F

list(newdict)Python 2とPython 3の両方で機能し、にキーの簡単なリストを提供しますnewdictどちらもPython 2とPython 3で list(newdict)使用できnewdict 、にキーの簡単なリストを提供しますkeys()必要 keys()ありません必要ありません (:(


#5F

A CANはまた、あなたによって使用リストの内包表記 あなたが使用することもでき、リストの内包表記を

>>> newdict = {1:0, 2:0, 3:0}
>>> [k  for  k in  newdict.keys()]
[1, 2, 3]

または、より短く、 またはより短く

>>> [k  for  k in  newdict]
[1, 2, 3]

注:3.7未満のバージョンでの順序は保証されません(順序付けはCPython 3.6の実装の詳細のみです) 注:3.7 未満のバージョンでは、順序付けは保証されていません(順序付けはCPython 3.6の実装の詳細のみです)。


#6階

Aリストに変換使用せずにkeys:方法、ITを読みやすく 使用しないkeysリストの場合には変換方法は、それをより読みやすくします:

list(newdict)

そして、辞書をループするとき、必要はありませんkeys() そして、辞書をループするとき、必要はありませんkeys()

for key in newdict:
    print key

事前に作成されたキーのリストを必要とするループ内でそれを変更しない限りループで変更したくない場合は、事前に作成されたキーリストが必要になります。

for key in list(newdict):
    del newdict[key]

2そこPythonのAは、限界性能で使用してゲインであるkeys() 使用でPython 2、keys()性能の少量を得ること

公開された0件の元の記事 賞賛された8件 30,000回以上の閲覧

おすすめ

転載: blog.csdn.net/asdfgh0077/article/details/105554995