210 字
1 分钟
列表推导式
列表推导式
列表推导式是纯c实现,比起for循环这种能美观并提升性能😘
下面的代码是实现从a里面读取出偶数并塞入一个集合之中
a=[1,2,3,4,5]squers = []
for i in a: if i%2==0: squers.append(i)print(squers)列表推导式语法
语法:[表达式 for 变量 in 可迭代对象 if 条件] 整体结构就是一个列表包裹:结果表达式,循环表达式,条件判断语句
squers = [n**2 for n in a if n%2==0]print(squers)几乎是一行搞定,牛逼吧!👌👌👌
为什么要用?
正常咱们遍历一个嵌套列表,需要用两层循环
#嵌套展开matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 原始写法:两层 for 循环flat = []for row in matrix: for val in row: flat.append(val)推导式写法:从左到右对应循环顺序
flat = [val for row in matrix for val in row]结果: [1, 2, 3, 4, 5, 6, 7, 8, 9]依旧一行秒了😘
多重条件
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 既是偶数,又大于 5
res = [x for x in nums if x % 2 == 0 if x > 5]
# 结果: [6, 8, 10]坑:if-else(注意位置!条件放在前面)!!!!!!🙌
nums = [1, 2, 3, 4, 5]# 偶数保留,奇数变成 -1res = [x if x % 2 == 0 else -1 for x in nums]# 结果: [-1, 2, -1, 4, -1]字典推导式
#语法:# 语法:{key_expr: value_expr for k, v in iterable if condition}ai = {"name":"joke","age":20}#原始写法for k,v in ai.items(): print(f"{k}的年龄是{v}")#优化后aav={k:v for k,v in ai.items()}print(aav)部分信息可能已经过时









