将键平铺成单个键并通过列表拆分它们的值



假设我有一个这样的字典:

{'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]]}

其中lettersvalues可以是为键设置的任意名称。

假设:

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])}

相关内容

  • 没有找到相关文章