专栏名称: dwzb
目录
相关文章推荐
国民弟弟的跨境十年  ·  嘉信证券开户全流程实操指南(超详细版) ·  昨天  
国民弟弟的跨境十年  ·  嘉信证券开户全流程实操指南(超详细版) ·  昨天  
中汇信达深圳税务师事务所  ·  中国人民银行 ... ·  2 天前  
中汇信达深圳税务师事务所  ·  中国人民银行 ... ·  2 天前  
51好读  ›  专栏  ›  dwzb

玩转python字典与列表(下)

dwzb  · 掘金  ·  · 2018-05-29 02:07

正文

玩转python字典与列表(下)

本文首发于 知乎

本文分为如下部分

  • 列表转置
  • 字典转置
  • 字典列表之间的转换
  • 总结

列表转置

已有

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'






请到「今天看啥」查看全文