Python列表推导式——List
创始人
2024-02-15 11:32:53
0

目录

遍历列表

range函数

列表推导式(★★★★★)五星技能点

五万次【列表推导式】与【for】遍历计算消耗时间对照表:

列表推导式逻辑判断


 

遍历列表

通过for in循环来遍历集合列表

range函数

我们基础range函数是参数范围是range(start,stop),在下图中能看到stopline-1,例如(0,10)只会遍历0-9的值。

我们测试一下:

for i in range(0, 10):print(i, end=",")

遍历结果: 

我们使用一个列表的盒子来看看我们累计的过程。

list_box = []
for i in range(0, 10):list_box.append(i)print(list_box)

结果显示:

这是一个有规则的0-9的序列,每次遍历的时候递增一个值。

列表推导式(★★★★★)五星技能点

基础遍历语法,这里对i这个遍历的内容进行了增加、次幂、除法运算。

list_box = []
for i in range(1, 11):list_box.append(i)# 由于如果是乘法的话有0的结果就肯定是0,没法看了,所以我们从1遍历到10
add = [i + i for i in list_box]
mul = [i ** i for i in list_box]
division = [round((i / (i + 1)), 10) for i in list_box]
print(add)
print(mul)
print(division)

结果输出: 

五万次【列表推导式】与【for】遍历计算消耗时间对照表:

列表推导式5万长度list遍历4次并运算for循环5万长度list遍历4次并运算
280s340s
import timelist_box = []
for i in range(1, 50001):list_box.append(i)# 由于如果是乘法的话有0的结果就肯定是0,没法看了,所以我们从1遍历到50001
startTime = time.time()
add = [i + i for i in list_box]
mul = [i ** i for i in list_box]
division = [round((i / (i + 1)), 10) for i in list_box]
endTime = time.time()
print(len(add))
print(len(mul))
print(len(division))
print("列表推导式消耗时间:", (endTime - startTime), "s")

循环计算时间:

import timelist_box = []
for i in range(1, 50001):list_box.append(i)# 由于如果是乘法的话有0的结果就肯定是0,没法看了,所以我们从1遍历到50001
startTime = time.time()
add = []
for i in list_box:add.append(i + i)
mul = []
for i in list_box:mul.append(i ** i)
division = []
for i in list_box:division.append(round((i / (i + 1)), 10))
endTime = time.time()
print(len(add))
print(len(mul))
print(len(division))
print("for循环消耗时间:", (endTime - startTime), "s")

for循环整个遍历时间是341秒也就是差不多快6分钟了呢。 

在这种计算的方式下,我们能看到列表推导式的计算优势,计算量越大效果越明显。

列表推导式逻辑判断

先使用列表推导式看看情况:

import timelist_box = []
for i in range(1, 100001):list_box.append(i)# 计算偶数
startTime = time.time()
even = [i for i in list_box if i % 2 == 0]
endTime = time.time()
print(len(even))
print("列表推导式计算偶数消耗时间:", (endTime - startTime), "s")

使用for i 循环再搞一遍。

import timelist_box = []
for i in range(1, 100001):list_box.append(i)# 计算偶数
startTime = time.time()
even = []
for i in list_box:if i % 2 == 0:even.append(i)
endTime = time.time()
print(len(even))
print("for i 循环计算偶数消耗时间:", (endTime - startTime), "s")

到这里我们基本对列表推导式算是有了一定的了解了,以后在计算这类复杂计算的时候就能使用这种方法进行快速计算了。

相关内容

热门资讯

托克逊县开展惠民促消费补贴政策... 6月21日,托克逊县在滨河花园举办惠民促消费补贴政策宣讲文艺汇演活动。活动旨在通过群众喜闻乐见的形式...
35 万拿下北京落户 7 分!... 在2025年国际教育格局中,哈尔滨工业大学(威海)与首都经济贸易大学的国际本科项目正以差异化政策优势...
原创 女... 在您阅读以下内容之前,诚挚地邀请您点击“关注”,这样您可以随时获取我们一系列优质的文章,也更方便进行...
索赔超 4 亿!Nike 起诉... 去年 7 月「球鞋定制一哥」The Shoe Surgeon收到了 Nike 的律师函。 时隔一年的...
构建大学生创业法律风险“防火墙... 党的二十届三中全会对完善就业优先政策作出部署,要求“优化创业促进就业政策环境,支持和规范发展新就业形...
猎鸟买卖一念间,铁窗罚金等你见... 来源:中国野生动物保护协会 本期编辑:杨立鹏 签 审:陈玉华
周鹤年发长文称一切像事先策划好... 搜狐娱乐讯 6月22日,前THEBOYZ成员周鹤年再发长文,称当他知道被拍照片,已第一时间告知公司并...