列表推导式

本文介绍了Python中的列表推导式,通过对比传统循环方式,展示了其在创建列表时的简洁性和高效性。文章详细阐述了列表推导式的三种基本语法形式,并给出了多个实例,包括多个for循环的使用。此外,还提到了列表推导式的扩展应用,如字典推导式和集合推导式,强调了它们在提高代码可读性和执行效率上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表推导式的引入

例如: 现在要创建一个新的列表 ,列表包含1-10的偶数,用普通方法如下:

# 定义空列表,存放1-10的偶数
l1=[]
# 从1-10遍历 如果i%2==0证明是偶数则添加至空列表中
for i in range(1,11):
    if i %2==0:
        l1.append(i)
print(l1)
用列表推导式:
l2=[x for x in range(1,11) if x%2==0]
print(l2)

总结下来:列表推导式代码更简洁,增加代码的可读性,同时后续生成器的学习要引入列表推导式

列表推导式语法

1.简单版语法:【表达式 for 变量 in 可迭代对象】

#生成一个1-10的列表,

#x代表向列表中添加的元素,而x来自于后面for循环

[x for x in range(1,11)]

2.带条件无else: [表达式 for 变量 in 可迭代对象 if 条件语句]

#生成一个0-9的偶数列表

#x代表向列表中添加的元素,x来自于后面for循环,但是x要满足后面if条件才往列表中添加

[x for x in range(10) if x%2==0]

3.带条件且有else:[表达式 if 条件语句 else 条件语句 for 变量 in 可迭代对象]

#生成一个0-10的列表,其中偶数加2 ,奇数+1

#x 如果满足条件语句就执行if前面的x+2,如果不满足则执行else后面的x+1

[x+2 if x%2==0 else x+1 for x in range(11)]

多个for循环:

语法: 表达式 第一个for 第二个for

假如要生成一个列表,每个元素由1-4的奇数,和1-4的偶数对应:[(1, 2), (1, 4), (3, 2), (3, 4)]

#不使用列表推导式,一般方法:

l1=[]
for i in range(1,5):
    if i%2!=0:
        for j in range(1,5):
            if j%2==0:
                l1.append((i,j))
print(l1)

#如果使用列表推导式:


#(i,j)是要添加到列表的数据变量 
# i的取值 第一个for i in  range(1,5) 条件是i%2!=0
# j的取值 第二个for j in range(1,5) 条件是j%2==0
l3=[(i,j) for i in range(1,5) if i%2!=0 for j in range(1,5) if j%2==0]
print(l3)

推导式扩展

不止列表有推导式,还有字典推导式,集合推导式(语法相同只是外边[]变成{}

#字典推导式

dict1={'name':'jimi','age':300}
#k的值是age时产生一个新的字典
d1={k:v for k,v in dict1.items() if k is 'age' }
print(d1)

#集合推导式

l1=[1,1,2,3,4,4,4]
s1={i for i in l1}
print(s1)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值