Python 3.5 + :
# 例如应用在字典融合中
x = {'a': 1, 'b': 2}
y = {'b': 3, 'd': 4}
# 在python3.5+ 中:
z = {**x, **y}
# >>> z
# >>> {'d': 4, 'b': 3, 'a': 1}
# 取出所有的key, 当key相同时,后面覆盖前面的value
# 在python2.x中
w = dict(x, **y)
# >>> w
# >>> {'d': 4, 'b': 3, 'a': 1}
>>> *range(4), 4
(0, 1, 2, 3, 4)
>>> [*range(4), 4]
[0, 1, 2, 3, 4]
>>> {*range(4), 4, *(5, 6, 7)}
{0, 1, 2, 3, 4, 5, 6, 7}
>>> {'x': 1, **{'y': 2}}
{'x': 1, 'y': 2}
>>> import numpy
>>> x = numpy.ones(3)
>>> x
array([ 1., 1., 1.])
>>> m = numpy.eye(3)
>>> m
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
>>> x @ m
array([ 1., 1., 1.])
- 为标准库增加了一个新的目录迭代函数
os.scandir()
# scandir返回一个迭代器,而不是返回一个文件名列表
# 这会在遍历非常大的目录时提高内存效率
# 下例将显示给定路径中不以'a'开头的所有文件(不包括目录) entry.is_file()调用通常不会进行额外的系统调用
for entry in os.scandir(path):
if not entry.name.startswith('a') and entry.is_file():
print(entry.name)