Python 列表推导式

Python 列表推导式语法

'''
语法一:
    exp1:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;
    条件表达式不成立则不返回
    x:for循环中变量
    data:一个序列(比如:列表/元组/字符串等)
    condition:条件表达式
'''
[exp1 for x in data if condition]
'''
语法二:
    exp1:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;
    条件表达式不成立则返回exp2
    condition:条件表达式
    exp2:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;
    条件表达式不成立则返回exp2
    x:for循环中变量
    data:个序列(比如:列表/元组/字符串等)
'''
[exp1 if condition else exp2 for x in data]

Python 列表推导式案例

1.Python 列表推导式案例一

获取 0 ~ 20 的所有偶数并且乘以 10,并返回所有计算之后的结果。示例代码如下:

list1 = [x*10 for x in range(0,21) if x%2 == 0] 
print(list1)
print(type(list1))

结果:

输出结果:
[0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200]
<class 'list'>

2.Python 列表推导式案例二

将 0 ~ 20 的偶数乘以 10 ,奇数乘以 100 ,并返回所有计算之后的结果。示例代码如下:

list2 = [x*10 if x%2 == 0 else x*100 for x in range(0,21) ]
print(list2)
print(type(list2))

结果:

输出结果:
[0, 100, 20, 300, 40, 500, 60, 700, 80, 900, 100, 1100, 120, 1300, 140, 1500, 160, 1700, 180, 1900, 200]
<class 'list'>

Python 列表推导式和循环效率对比

import time # 添加time模块,用于统计代码运行时间
#一共添加10000000次数据到列表中
total_num = 10000000
#使用列表推导式
start_time = time.time()
list1 = [x for x in range(0,total_num)] # 列表推导式
end_time = time.time()
print("使用列表推导式耗时:{}秒".format(end_time-start_time))
#使用普通for循环
start_time = time.time()
list2 = list()
for x in range(0,total_num): # for循环
    list2.append(x)
end_time = time.time()
print("使用普通for循环耗时:{}秒".format(end_time-start_time))

结果:

输出结果:
使用列表推导式耗时:0.5455152988433838秒
使用普通for循环耗时:1.2068836688995361

输出结果很明显,实现通用的功能,Python 列表推导式的效率整整高出普通 for 循环一倍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值