python中创建列表推导身份证号_Python列表推导和生成器表达式

一.什么是列表推导

# 例1

lst = []

for i in range(1, 11):

lst.append(i)

print(lst)

# 例2

lst = [i for i in range(1,11)]

print(lst)

从代码可读性的层面来讲,例2的可读性更好

结论:所以列表推导式是一种用来生成有规律的列表的一种可读性较好的方式

二.列表推导的两种模式

循环模式

symbols = '!@#$%^&'

codes = [ord(symbol) for symbol in symbols]

print(codes)

筛选模式~~~~

symbols = '$%^&*('

beyond_ascii = [ord(s) for s in symbols if ord(s) > 127]

print(beyond_ascii)

三.列表推导和filter、map的执行效率

列表推导是否执行效率低于filter、map呢?为了解决这个问题,我们使用timeit模块来对小段代码的执行效率进行测试。首先介绍两个常用方法:

def timeit(stmt="pass", setup="pass", timer=default_timer,

number=default_number, globals=None):

"""Convenience function to create Timer object and call timeit method."""

return Timer(stmt, setup, timer, globals).timeit(number)

def repeat(stmt="pass", setup="pass", timer=default_timer,

repeat=default_repeat, number=default_number, globals=None):

"""Convenience function to create Timer object and call repeat method."""

return Timer(stmt, setup, timer, globals).repeat(repeat, number)

timeit()返回的是方法执行number次花费的总时间

print(timeit.timeit(stmt="[i for i in range(100000)]", number=10000))

repeat()返回的是一个列表,包含每一次的执行时间

print(timeit.repeat(stmt="[i for i in range(100000)]", repeat=2, number=10000))

先测试一下列表推导和普通循环语句的执行效率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值