你应该知道的Python新方法(一 )

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)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打...
    依依玖玥阅读 8,959评论 6 37
  • 原文链接 《Python数据分析》(Python for Data Analysis, 2nd Edition)第...
    李绍俊阅读 12,743评论 0 5
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,409评论 17 410
  • 三生逐梦一世情 窗外逐花思满楼, 花颜月貌与花同。 不解东风思无涯, ...
    空城锦阅读 2,578评论 0 0
  • 亲爱的生活,亲爱的泓默,你好啊! 我在圈里写:亲爱的生活,我又来了。好多朋友问我要去哪里旅游啊?我说:...
    48b7900828a7阅读 2,600评论 3 3

友情链接更多精彩内容