9

私はこれらのリストを持っています:

list1 = ["a","b","c"]
list2 = ["1","2","3"]

それらを辞書に追加する必要があります。ここで、list1がキーで、list2が値です。

私はこのコードを書きました:

d = {}
for i in list1:
    for j in list2:
        d[i] = j
print d

出力は次のとおりです。

{'a':'3','b':'3','c':'3'}

このコードの何が問題になっていますか?出力が次のようになるようにするにはどうすればよいですか

{'a':'1','b':'2','c':'3'}

ありがとう!

4

4 に答える 4

18

リストを圧縮して、dictの理解を使用します。

{i: j for i, j in zip(a, b)}

または、さらに簡単に、次を使用してdict()ください:

dict(zip(a, b))

シンプルに保つ必要があるので、最後の解決策が最善ですが、私はそれがどのように行われるかを示すためにdict理解の例を残しました。

于 2012-11-05T04:09:24.083 に答える
4

リストを同時に繰り返す必要があることを除いて、ほぼそこにいます

In [1]: list1 = ["a","b","c"]

In [2]: list2 = ["1","2","3"]

In [3]: d = {}

In [4]: for i, j in zip(list1, list2):
   ...:     d[i] = j
   ...:

In [5]: print d
{'a': '1', 'c': '3', 'b': '2'}
于 2012-11-05T04:05:59.693 に答える
0

dictの理解を使用して、素敵なワンライナーで次のことを行うこともできます。

d = {i : j for i, j in zip(list1, list2)}
于 2012-11-05T04:09:30.063 に答える
0
list1 = ["a","b","c"]                                                  
list2 = ["1","2","3"]                                                                                                                        
mydict = {}                                                            
for i,j in zip(list1,list2):                                           
   mydict[i] = j                                                      
print mydict   
于 2012-11-05T04:09:44.500 に答える