0

私は2つのリストを持っています。1つは次のように見えます

['jim', 'bob', 'mike', 'kim', 'Alex']

もう一方は次のように見えます

['YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'YES', 'NO', 'NO', 'NO', 'NO', 'NO', 'NO', 'NO', 'NO', 'YES', 'NO', 'YES', 'NO']

リスト 1 の各名前は、リスト 2 の最初の 6 項目に対応します。したがって、jim='YES', 'YES', 'YES', 'YES', 'YES', 'YES' および Alex='NO', 'NO '、'はい'、'いいえ'、'はい'、'いいえ'。これらの 2 つのリストを dict にマージする方法はありますか?

私は次のような関数を書くつもりでした

def people():
    List1[0]=List2[0:6]

しかし、それは List1 を変更します。私は試した

dict(List1[0]: List2[0:6]) 

しかし、エラーが発生します

4

2 に答える 2

8

dict内包表記を使用できます。

{x: l2[6*i:6*(i+1)] for i,x in enumerate(l1)}

誰かが遅かれ早かれ投稿するはずの恐ろしいitertoolsバージョンが必要な場合は、dict(zip(l1, itertools.izip_longest(*[iter(l2)]*6))) ...blerghのようになります。

于 2013-02-11T05:18:06.847 に答える
0

d = {List1[0] : List2[0:6]}代わりに試してください。構文でdictコンストラクターを呼び出そうとしていますが、これを行うには使用する必要があります。:{}

于 2013-02-11T05:20:39.573 に答える