Python 列表使用

一、列表推导式
(1)条件推导式
value1: 如果条件表达式condition成立,返回value1 ; 如果条件表达式不成立,返回value2 ;
condition:条件表达式
Value2: 如果条件表达式condition成立,返回value1 ; 如果条件表达式不成立,返回value2 ;

value1 if condition else Value2

如,判断一个数是偶数还是奇数。

x = 10
if x%2 == 0:
  print("x是偶数")
else:
  print("x是奇数")

使用推导式:

print("x是偶数") if x%2 == 0 else print("x是奇数")

(2)列表推导式
列表推导式是条件推导式和循环一起配合使用,并返回一个列表。
语法一:
exp1:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;条件表达式不成立则不返回
x:for循环中变量
data:一个序列(比如:列表/元组/字符串等)
condition:条件表达式
[exp1 for x in data if condition]

例子:获取0~20的所有偶数并且乘以10,并返回所有计算之后的结果

[x*10 for x in range(0,21) if x%2==0]
输出:[0, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200]

语法二:
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]

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

[x*10 if x%2==0 else x*100 for x in range(0,21)]
输出:[0, 100, 20, 300, 40, 500, 60, 700, 80, 900, 100, 1100, 120, 1300, 140, 1500, 160, 1700, 180, 1900, 200]

(3)效率对比
使用列表推导式的效率远远高于for循环
例子:添加10000000次数据到列表中
使用列表推导式:

import time
start_time=time.time()
list1 = [x for x in range(0, 10000000)]
end_time=time.time()
print(f"使用列表推导式耗时:{end_time-start_time}秒")
输出:使用列表推导式耗时:0.458773136138916

使用普通for循环:

import time
list2=[]
start_time=time.time()
for x in range(0, 10000000):
  list2.append(x)
end_time=time.time()
print(f"使用列表推导式耗时:{end_time-start_time}秒")
输出:使用普通for循环耗时:7.412888288497925
posted @   LevisL  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示