|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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/ |
|