Python >> 玩蛇过程中遇到的小技巧-4 : 列表解析式生成字典

列表解析式生成字典

场景:

看Python资料时学到了一种通过列表解析式生成字典的方式,工作暂未用到过,先记录下来。

代码:

# 从 Python 2.7 开始,甚至可以用解析式生成字典(哈希表)
# Taken from page 70 chapter 3 of Fluent Python by Luciano Ramalho
# 有如下列表,元素为多个tuple。
In [8]: DIAL_CODES = [
   ...:     (86, 'China'),
   ...:     (91, 'India'),
   ...:     (1, 'United States'),
   ...:     (62, 'Indonesia'),
   ...:     (55, 'Brazil'),
   ...:     (92, 'Pakistan'),
   ...:     (880, 'Bangladesh'),
   ...:     (234, 'Nigeria'),
   ...:     (7, 'Russia'),
   ...:     (81, 'Japan'),
   ...:     ]
   ...:


# 通过列表解析式生成字典
In [9]: country_code = {country: code for code, country in DIAL_CODES}

# 输出字典
In [10]: country_code
Out[10]:
{'China': 86,
 'India': 91,
 'United States': 1,
 'Indonesia': 62,
 'Brazil': 55,
 'Pakistan': 92,
 'Bangladesh': 880,
 'Nigeria': 234,
 'Russia': 7,
 'Japan': 81}

# 还可以过滤条件生成字典
In [11]: {code: country.upper() for country, code in country_code.items() if code < 66}
Out[11]: {1: 'UNITED STATES', 62: 'INDONESIA', 55: 'BRAZIL', 7: 'RUSSIA'}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值