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]

(它们的长度相同)..我想找到一种方法从这些列表中生成字典,方法是将第一个列表中的值作为 dict 的键,并将第二个列表的数字作为每个键的值对应于第一个列表的位置..

所以结果是:

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 回答