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

Python で表形式のリストを辞書に効率的に変換するにはどうすればよいですか?

DDD
リリース: 2024-12-07 06:24:12
オリジナル
214 人が閲覧しました

How Can I Efficiently Convert a Tabular List to a Dictionary in Python?

Python で表形式のリストを辞書に変換する

プログラミングでは、データが表形式で編成されるシナリオによく遭遇します。 list では、偶数のインデックスがキーを表し、奇数のインデックスが対応する値を表します。タスクは、このリストを辞書に変換することです。

解決策:

この変換を達成する最もクリーンで効率的な方法は、Python の組み込み関数を利用することです。

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

このコードは、リスト a を効果的に反復し、拡張スライス演算子 [::2] を使用してスライスします。これにより、他の要素がすべてスキップされます。結果は 2 つのリストになります。a[::2] にはキーが含まれ、a[1::2] には値が含まれます。これらのリストは、dict() 関数を使用して辞書を構築するために使用されます。

大きなリストの場合は、一時リストの作成を避けるために別のアプローチをお勧めします。

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

このメソッドはiter() 関数を使用してリストの反復子を作成します。 izip() 関数 (Python 3 では zip()) は、各反復子の要素をインターリーブし、キーと値のタプルを生成する新しい反復子を作成します。これらのタプルは辞書を構築するために dict() に渡されます。

Python 3 では、構文的に便利な別のメソッドは次のとおりです。

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

このコードは、リストを反復処理する辞書内包表記を使用します。インデックスを 2 段階で作成し、キーと値を新しい辞書に組み立てます。

Python 3.8 の場合その後、「セイウチ」演算子 (:=) を使用して、これを 1 行で簡潔に記述することができます:

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

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

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