栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

len(List)的性能与读取变量

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

len(List)的性能与读取变量

几个结果(一百万次呼叫的时间,以秒为单位),并在Windows 7上使用Python
2.7.10列出了十个元素;

store
是存储长度还是继续调用
len
alias
是否为
len
以下项创建本地别名:

Store Alias n=      1      10     100Yes   Yes       0.862   1.379   6.669Yes   No        0.792   1.337   6.543No    Yes       0.914   1.924  11.616No    No        0.879   1.987  12.617

和一千个元素的列表:

Store Alias n=      1      10     100Yes   Yes       0.877   1.369   6.661Yes   No        0.785   1.299   6.808No    Yes       0.926   1.886  11.720No    No        0.891   1.948  12.843

结论:

  • 存储结果比
    len
    重复调用(甚至是)更有效
    n == 1
  • 为不创建结果的本地别名
    len
    可以对较大的
    n
    地方进行较小的改进,因为我们不存储结果,但不如仅存储结果那样多。和
  • 列表长度的影响可以忽略不计,这表明是否对整数进行了intern没有任何区别。

测试脚本:

def test(n, l, store, alias):    if alias:        len_ = len        len_l = len_(l)    else:        len_l = len(l)    for _ in range(n):        if store: _ = len_l        elif alias: _ = len_(l)        else: _ = len(l)if __name__ == '__main__':    from itertools import product    from timeit import timeit    setup = 'from __main__ import test, l'    for n, l, store, alias in product(        (1, 10, 100),        ([None]*10,),        (True, False),        (True, False),    ):        test_case = 'test({!r}, l, {!r}, {!r})'.format(n, store, alias)        print test_case, len(l),        print timeit(test_case, setup=setup)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/661757.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号