1

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

[0,0,3,3,0,1,1,1,3,3,0,2,0,2,0,0,2,2]

そしてこのリスト:

[18,23,56,34,23,67,89,43,12,22,34,21,54,23,67,12,45,67]

(それらの長さは同じです)..辞書のキーとして最初のリストの値を使用し、各キーの値として2番目のリストの数字を使用して、これらのリストから辞書を生成する方法を見つけたいと思います最初のリストの位置に対応します。

したがって、結果は次のようになります。

dict = {'0': '18,23,23,34,54,67,12', '1':'67,89,43',.........} 

どうすればこれを実装できますか..どんな助けでも大歓迎です

4

1 に答える 1

5

できるよ:

>>> list1 = [0,0,3,3,0,1,1,1,3,3,0,2,0,2,0,0,2,2]
>>> list2 = [18,23,56,34,23,67,89,43,12,22,34,21,54,23,67,12,45,67]
>>> import collections
>>> result = collections.defaultdict(list)
>>> for i, j in zip(list1, list2):
...     result[i].append(j)
...
>>> result
defaultdict(<type 'list'>, {0: [18, 23, 23, 34, 54, 67, 12], 1: [67, 89, 43], 2: [21, 23, 45, 67], 3: [56, 34, 12, 22]})
>>> result[0]
[18, 23, 23, 34, 54, 67, 12]
>>> result[1]
[67, 89, 43]

質問で説明されているデータ構造を取得するには、次のようにします。

>>> for key, values in result.items():
...     result[str(key)] = ','.join(str(v) for v in values)
于 2013-08-10T23:27:45.860 に答える