假设我有一个这样的字典:
{'a':['data', 1, 2, 3],
'b':['data2', 4, 3, 2, 1, 0],
'c':['data3', 3, 4, 5, 6]}
我想被压缩成这样:
{'letters':['a','b','c'],
'values':[['data', 1, 2, 3], ['data2', 4, 3, 2, 1, 0], ['data3', 3, 4, 5, 6]]}
其中letters
和values
可以是为键设置的任意名称。
假设:
d = {'a':['data', 1, 2, 3],
'b':['data2', 4, 3, 2, 1, 0],
'c':['data3', 3, 4, 5, 6]}
可以使用:
out = {'letters': list(d.keys()),
'values': list(d.values())
}
输出:
>>> out
{'letters': ['a', 'b', 'c'],
'values': [['data', 1, 2, 3], ['data2', 4, 3, 2, 1, 0], ['data3', 3, 4, 5, 6]]
}
您可以使用zip将关键字名称与字典项的内容组合起来:
d = {'a':['data', 1, 2, 3],
'b':['data2', 4, 3, 2, 1, 0],
'c':['data3', 3, 4, 5, 6]}
d = dict(zip(('letters','values'),zip(*d.items())))
print(d)
{'letters': ('a', 'b', 'c'),
'values': (['data', 1, 2, 3],['data2', 4, 3, 2, 1, 0],['data3', 3, 4, 5, 6])}