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")

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

相关内容

热门资讯

吴清谈券商监管政策:对优质机构... 中新社北京12月6日电 (记者 陈康亮)在谈及券商监管政策时,中国证监会主席吴清6日在北京表示,将着...
第五冠!足协杯-法比奥3球阿奇... 北京时间12月6日,2025年中国足协杯决赛在苏州奥体中心体育场进行。北京国安队凭借法比奥的帽子戏法...
2026中超亚冠资格分析:海港... 随着2023赛季的结束,北京国安在足协杯决赛中夺得冠军,2026赛季中超球队的亚冠名额也随之尘埃落定...
“2小时骑行时速不低于28公里... 极目新闻记者 郭奕 近日,昆明一家律师事务所的招聘公告引起网友热议。推文显示,此次招聘的岗位是实习律...
《藏在故宫里的法律印迹》新书发... 中新网北京12月6日电 (记者 高凯)故宫博物院与法律出版社日前在故宫博物院建福宫举行《藏在故宫里的...
原创 单... 深夜,上海某医院的ICU,40+岁的蒋女士突发脑出血,急需手术,但医生找不到能为她签字的人。 她未婚...
俄罗斯发动大规模袭击,“乌克兰... 新闻荐读 据媒体报道,乌克兰能源部6日称,俄罗斯使用无人机和导弹对乌克兰基辅州、切尔尼戈夫州、利沃夫...
破解企业出海痛点,丝路电商全球... 新京报贝壳财经讯(记者李铮)12月5日,国内首个聚焦“丝路电商”的全球海外法律合规风险查询平台“规海...
中俄达成共识后,高市早苗改口:... 当地时间2025年12月3日,日本方面紧急报道了,日本首相高市早苗的最新表态,高市早苗:“日本在台湾...
政擎数据科技申请基于大数据的企... 国家知识产权局信息显示,深圳政擎数据科技有限公司申请一项名为“一种基于大数据的企业政策动态匹配方法及...