[解決済み] 辞書からキーと値のペアのサブセットを抽出する?
2022-03-24 22:01:40
質問
私はいくつかのキーと値のペア(約16)を持つ大きな辞書オブジェクトを持っていますが、私はそれらのうちの3つだけに興味があります。それを達成するための最良の方法(最短/効率的/最もエレガント)は何でしょうか?
私が知っているベストは
bigdict = {'a':1,'b':2,....,'z':26}
subdict = {'l':bigdict['l'], 'm':bigdict['m'], 'n':bigdict['n']}
これよりもっとエレガントな方法があるはずです。
どのように解決するのですか?
試してみてはいかがでしょうか。
dict((k, bigdict[k]) for k in ('l', 'm', 'n'))
... あるいは
Python 3
Python バージョン 2.7 以降
(おかげさまで
ファビオ・ディニッツ
2.7でも動作することを指摘してくれた)
:
{k: bigdict[k] for k in ('l', 'm', 'n')}
アップデート:として
Håvard S
が指摘するように、キーが辞書に入ることが分かっていることを前提にしています。
回答
その仮定ができない場合。あるいは
ティンボ
にないキーが必要な場合、コメントで指摘しているように、そのキーは
bigdict
にマッピングする。
None
, ができる。
{k: bigdict.get(k, None) for k in ('l', 'm', 'n')}
Python 3 を使っていて、かつ のみ 新しいディクショナリに、元のディクショナリに実際に存在するキーが欲しい場合、オブジェクトを表示するファクトを使用して、いくつかのセットオペレーションを実装することができます。
{k: bigdict[k] for k in bigdict.keys() & {'l', 'm', 'n'}}
関連
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] 与えられたキーがすでに辞書に存在するかどうかをチェックする
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] 辞書のリストを辞書の値でソートするにはどうしたらいいですか?
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] 辞書から要素を削除する
-
[解決済み] 複数行の長い文字列を作成するためのPythonicな方法
-
[解決済み] ディクショナリーで最大値を持つキーを取得する?
-
[解決済み] 辞書のキーが利用できない場合、デフォルト値を返す
-
[解決済み] 辞書を作成し、キーと値のペアを動的に追加するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
python call matlab メソッドの詳細
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Python百行で韓服サークルの画像クロールを実現する
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
Python LeNetネットワークの説明とpytorchでの実装
-
Python 入出力と高次代入の基礎知識
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")