18
x = ['1', '2', '3', '4']
y = [[1,0],[2,0],[3,0],[4,]]

x値とy値が次のように対応するように辞書を作成したいと思います。

1: [1,0], 2: [2,0]

や。。など

4

4 に答える 4

34

zip関数を使用できます: dict(zip(x, y))

>>> x = ['1', '2', '3', '4']
... y = [[1,0],[2,0],[3,0],[4,]]
>>> dict(zip(x, y))
0: {'1': [1, 0], '2': [2, 0], '3': [3, 0], '4': [4]}
于 2013-03-03T06:35:15.070 に答える
7

python> 2.7では、dictの理解を使用できます。

>>> x = ['1', '2', '3', '4']
>>> y = [[1,0],[2,0],[3,0],[4,]]
>>> mydict = {key:value for key, value in zip(x,y)}
>>> mydict
{'1': [1, 0], '3': [3, 0], '2': [2, 0], '4': [4]}
>>> 

それでも最良の答えはすでに与えられています

dict(zip(x、y))

python <= 2.7では、イテレータを返すitertools.izipように大きなリストを操作する場合に使用できます。izipあなたのような小さなリストの場合、の使用はizipやり過ぎでしょう。ただしitertools.izip、Python 3では消滅したことに注意してください。Python3では、ビルトインはzipすでにイテレータを返しているため、結果としてizip不要になりました。

于 2013-03-03T06:35:40.973 に答える
3

dict(zip(x,y))キーが文字列でよければ、すばやく簡単に答えることができます。それ以外の場合は、dict(zip(map(int,x),y))

于 2013-03-03T06:35:51.980 に答える
2

itertools.izipこれを達成するために使用できます。

from itertools import izip
x = ['1', '2', '3', '4']
y = [[1,0],[2,0],[3,0],[4,]]
dict(izip(x, y))

Pythonのフレーバーが3.xの場合itertools.zip_longest、同じことを行うために使用できます。

from itertools import zip_longest
x = ['1', '2', '3', '4']
y = [[1,0],[2,0],[3,0],[4,]]
dict(zip_longest(x, y))    
于 2013-03-03T06:35:38.673 に答える