假设以下玩具集(来自CSV文件,其中列名称是"键",我只对我在"数据"中放入的某些行感兴趣):
keys = ['k1', 'k2', 'k3', 'k4']
data = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
Run Code Online (Sandbox Code Playgroud)
我想获得一个包含每列列表的字典,如下所示:
{'k1': [1, 5, 9, 13], 'k2': [2, 6, 10, 14], 'k3': [3, 7, 11, 15], 'k4': [4, 8,
12, 16]}
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我首先使用空列表初始化字典,然后迭代(按键的顺序)以附加列表中的每个项目.
my_dict = dict.fromkeys(keys, [])
for row in data:
for i, k in zip(row, keys):
my_dict[k].append(i)
Run Code Online (Sandbox Code Playgroud)
但它不起作用.它构建了这个字典:
{'k3': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], …Run Code Online (Sandbox Code Playgroud)