3

2 つのリストがあり、それらから辞書を作成したいとします。お気に入り:

>>> l = [1, 2, 3, 4, 5]
>>> x = ['a', 'b', 'c']
>>> dict(zip(l, x))
{1: 'a', 2: 'b', 3: 'c'}

これは私が望むように機能し、リストの長さが等しくないため、要素4と要素5は除外され、それらに対応する値はありません。それは予想通りです。

しかし、値が必要な場合はどうすればよいでしょNonelか。出力を次のようにしたい:

{1: 'a', 2: 'b', 3: 'c', 4: None, 5: None}

私が考えた解決策の 1 つは、両方を反復処理し、それらの長さを比較してNone、必要に応じて追加することでした。私もうまくいく解決策を持っていますが、おそらくもっと簡単で短い方法でそれを行うことができるかどうか疑問に思っていましたか?

4

1 に答える 1

12

使用する

dict(itertools.izip_longest(l, x))
# {1: 'a', 2: 'b', 3: 'c', 4: None, 5: None}
于 2011-01-19T16:33:25.140 に答える