本文首发于 知乎
本文分为如下部分
- 列表转置
- 字典转置
- 字典列表之间的转换
- 总结
列表转置
已有
l = [['a', 'b', 'c'],
[1, 2, 3]]
想得到
[('a', 1), ('b', 2), ('c', 3)]
代码如下
[z for z in zip(*l)]
zip
函数在list的转置中充当重要作用,它的基础用法是这样的
for z in zip(['a', 'b', 'c'], [1, 2, 3]):
print(z)
# 输出
('a', 1)
('b', 2)
('c', 3)
字典的转置
已有
m = {'Bob': {'age': 30, 'country': 'America'},
'Mary': {'age': 20, 'country': 'China'},
'Frank': {'age': 25, 'country': 'America'}}
想得到
{'age': {'Bob': 30, 'Frank': 25, 'Mary': 20},
'country': {'Bob': 'America', 'Frank': 'America', 'Mary': 'China'}}
如果借用pandas直接转置即可
>>> m = {'Bob': {'age': 30, 'country': 'America'},
... 'Mary': {'age': 20, 'country': 'China'},
... 'Frank': {'age': 25, 'country'