ホームページ > バックエンド開発 > Python チュートリアル > Python でキーと値の交互リストを辞書に効率的に変換するにはどうすればよいですか?

Python でキーと値の交互リストを辞書に効率的に変換するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-29 16:51:10
オリジナル
189 人が閲覧しました

How Can I Efficiently Convert an Alternating Key-Value List to a Dictionary in Python?

「[key1,val1,key2,val2]」を辞書に変換する: Python メソッド

問題:

Python には、キーと値が交互に配置されたリスト a があり、すべての偶数要素が辞書キーを表します。後続の奇数要素は対応する値です。タスクは、このリストを辞書 b に変換し、各キーと値のペアが適切にマップされるようにすることです。

例:

a = ['hello', 'world', '1', '2']
ログイン後にコピー

必要な出力:

b = {'hello': 'world', '1': '2'}
ログイン後にコピー

解決策:

この問題を解決する最も簡単な方法は、Python の組み込み dict() とzip()関数。構文的にきれいな解決策は次のとおりです。

b = dict(zip(a[::2], a[1::2]))
ログイン後にコピー

このメソッドは効率的で、望ましい結果が得られます。ただし、パフォーマンスが懸念される場合は、Python のイテレータ ツールを使用する別のアプローチもあります。

from itertools import izip
i = iter(a)
b = dict(izip(i, i))
ログイン後にコピー

このメソッドは、ファイル内に一時リストを作成しないため、非常に大きなリストを扱う場合に特に便利です。 process.

Python 3 では、dict 内包表記も簡潔な表現を提供します。ソリューション:

b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
ログイン後にコピー

zip() は Python 3 ではすでに遅延していますが、Python 3.8 以降では単一行ソリューションとしてセイウチ演算子 (:=) を使用することもできます:

b = dict(zip(i := iter(a), i))
ログイン後にコピー

最終的に、最適な選択は、特定の要件と使用している Python のバージョンによって異なります。これらのメソッドは、交互のキーと値のペアのリストを Python の辞書に変換するためのクリーンで効率的なソリューションを提供します。

以上がPython でキーと値の交互リストを辞書に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート