列表推导式

1、列表推导式 - 创建列表的表达式

1)格式1

[表达式 for 变量 in 序列]

让变量去序列中取值,每取一个值就创建列表中的一个元素,元素的值就是表达式的值
for 变量 in 序列:
    产生元素
list1 = [1 for x in range(4)]
print(list1)        # [1, 1, 1, 1]

list2 = [x for x in range(4)]
print(list2)        # [0, 1, 2, 3]

list3 = [2*x for x in range(4)]
print(list3)        # [0, 2, 4, 6]

list4 = [len(x) for x in ["abc", "hello", "world"]]
print(list4)        # [3, 5, 5]

2)格式2

[表达式 for 变量 in 序列 if 条件语句]

让变量去序列中取值,每取一个值就判断条件语句是否为True,如果为True就创建一个列表元素,元素的值是表达式的值
for 变量 in 序列:
    if 条件语句:
        产生元素
list6 =[x for x in range(6) if x & 1 == 0]
print(list6)        # [0, 2, 4]

list7 = [x**2 for x in range(10) if x % 2]
print(list7)    # [1, 9, 25, 49, 81]

3)格式3

[表达式 for 变量1 in 序列1 for 变量2 in 序列2]

for 变量1 in 序列1:
    for 变量2 in 序列2:
        产生一个列表元素(值是表达式的结果)
list8 = [x*y for x in range(4) for y in range(3)]
print(list8)        # [0, 0, 0, 0, 1, 2, 0, 2, 4, 0, 3, 6]

3)格式4

[表达式 for 变量1 in 序列1 for 变量2 in 序列2 if 条件语句]

for 变量1 in 序列1:
    for 变量2 in 序列2:
        if 条件语句:
            产生一个列表元素(值是表达式的结果)
list9 = [x+y for x in range(3) if x % 2 for y in range(3)]
print(list9)        # [1, 2, 3]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值