|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 戴宇轩 于 2015-6-28 11:25 编辑
1.更丰富的的解包操作 (PEP 448)
在Python 3.5中,我们可以用*来解包列表,生成器,元组和集合,使用**来解包字典。
你可以将它们用在函数调用,各种解析式,和字典映射。
在调用函数时使用- >>> print(*[1], *[2], 3)
- 1 2 3
- >>> dict(**{'x': 1}, y=2, **{'z': 3})
- {'x': 1, 'y': 2, 'z': 3}
复制代码
在列表,生成器,元组,集合和字典映射里使用- >>> *range(4), 4
- (0, 1, 2, 3, 4)
- >>> [*range(4), 4]
- [0, 1, 2, 3, 4]
- >>> {*range(4), 4}
- {0, 1, 2, 3, 4}
- >>> {'x': 1, **{'y': 2}}
- {'x': 1, 'y': 2}
复制代码
在字典映射里,值会被覆盖- >>> {'x': 1, **{'x': 2}}
- {'x': 2}
- >>> {**{'x': 2}, 'x': 1}
- {'x': 1}
复制代码 覆盖是按顺序的(从左到右),比如说{**{'a': 1}, 'a': 2, **{'a': 3}}和{'a': 3}是一样的
在解析式中使用- >>> ranges = [range(i) for i in range(5)]
- >>> [*item for item in ranges]
- [0, 0, 1, 0, 1, 2, 0, 1, 2, 3]
- >>> {*item for item in ranges}
- {0, 1, 2, 3}
复制代码
2.os.scandir() (PEP 471)
os.scandir()是比os.walk()更快更好的目录搜索函数。
其速度在windows下是os.walk()的8-9倍,在POSIX下是os.walk()的2-3倍。
https://www.python.org/downloads ... lease/python-350b2/ |
|