- data = [('foo', 10), ('bar', 20), ('foo', 39), ('bar', 49)]
- groups = {}
- for (key, value) in data:
- if key in groups:
- groups[key].append(value)
- else:
- groups[key] = [value]
pythonic
- # 第一种方法
- groups = {}
- for (key, value) in data:
- groups.setdefault(key, []).append(value)
- # 第二种方法
- from collections import defaultdict
- groups = defaultdict(list)
- for (key, value) in data:
- groups[key].append(value)
10、字典推导式
在python2.7之前,构建字典对象一般应用下面这种方法,可读性异常差
6、列表切片
- numbers = [1, 2, 3]
- my_dict = {number: number * 2 for number in numbers}
- print(my_dict) # {1: 2, 2: 4, 3: 6}
- # 还可以指定过滤前提
- my_dict = {number: number * 2 for number in numbers if number > 1}
- print(my_dict) # {2: 4, 3: 6}
字典推导式是python2.7新增的特点,可读性加强了很多,类似的┞氛样列表推导式和集合推导式。
【编辑推荐】
- Python源码懂得: +=和 xx = xx + xx的差别
- Python编写知乎爬虫实践
- Python爬虫音频数据
- 机械进修之用Python大年夜零实现贝叶斯分类器
- ShutIt:一个基于Python的shell主动化框架
推荐阅读
强调单路性能/定位数据中心应用,AMD正式推出面向数据中心的处理器EPYC
【51CTO.com原创稿件】在办事器处理器范畴,英特尔绝对是一家独大年夜,无人能比。90%以上的市场占领率,也充>>>详细阅读
本文标题:代码这样写不止于优雅(Python 版)
地址:http://www.17bianji.com/lsqh/35900.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示