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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-08 13:38:101040ブラウズ

How Can I Efficiently Convert a Python List of Alternating Keys and Values into a Dictionary?

Python で [key1,val1,key2,val2] リストを辞書に変換する

Python では、それぞれが要素のペアは、辞書内のキーと値のペアにマップされます。このようなリストを辞書に変換するには、構文的に最も洗練されたアプローチは、組み込みの zip() 関数を辞書構築と組み合わせて利用することです。

たとえば、キーと値が交互に含まれるリストがあるとします。

a = ['hello','world','1','2']

a の各キーが対応する値にマッピングされる辞書 b を効率的に作成できます。

b = dict(zip(a[::2], a[1::2]))

ここで、a[::2] はキーを表す偶数要素を抽出し、a[1::2] は値を表す奇数要素を抽出します。次に、dict() コンストラクターは、これらのリストを辞書に結合します。

より大きなリストの場合、メモリ効率の高い代替方法は、 a の要素をペアで繰り返し消費する itertools.izip() 関数を活用することです。

from itertools import izip
i = iter(a)
b = dict(izip(i, i))

Python 3 では、辞書内包表記を次のように使用して同様の結果を達成できます。 range():

b = {a[i]: a[i+1] for i in range(0, len(a), 2)}

あるいは、Python 3 では遅延しているため、zip() 関数を直接使用することもできます。

i = iter(a)
b = dict(zip(i, i))

簡潔にするため、「セイウチ」 Python 3.8 以降では演算子 (:=) を使用して、1 行で代入を実行できます:

b = dict(zip(i := iter(a), i))

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。