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

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

相关内容

热门资讯

龙华区发布“鸿蒙六条” 形成“... 深圳新闻网2025年10月11日讯(深圳特区报记者 杨明铭 吴禾昆)日前,龙华区正式发布“鸿蒙六条”...
优化制度满足多元需求 港股市场... 71起 Wind数据显示,截至10月10日,今年以来港股市场IPO已有71起,较2024年同期增加2...
苹果遭神经科学家起诉:被指控使... 苹果 凤凰网科技讯 北京时间10月11日,据路透社报道,苹果公司在加州联邦法院被起诉。两名神经科学家...
焦作市解放区人民检察院:公益诉... 俗话说“牙疼不是病,疼起来要人命。”随着人们口腔保健意识的逐步提升,牙疼不再靠“忍”字诀,而是就诊于...
娃哈哈不再姓宗,但宗馥莉仍是第... 红星资本局10月11日消息,红星资本局10日晚间从知情人士处获悉,宗馥莉已于9月12日向娃哈哈集团有...
江西长运股份有限公司 涉及诉讼... 证券代码:600561 证券简称:江西长运 公告编号:临2025-048 江西长运股份有限公司 涉及...
新型政策性金融工具加速落地 ● 本报记者 欧阳剑环 进入四季度,多地抢抓重大项目施工“黄金期”,推动项目建设取得积极进展。 中国...
我省已建5家国家海外知识 产权... 本报讯(记者 李爱琴)记者昨日从省知识产权维保中心获悉,目前,我省已建设5家国家海外知识产权纠纷应对...
原创 最... 在浩瀚的星象学中,星座不仅是夜空中的璀璨星辰,更是人类情感与命运的映射。今天,让我们聚焦于那些似乎更...
山东金岭矿业股份有限公司 关于... ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ 除上述条款外,《公司章程》其他条款保持不变,涉及章节条款序号...