list里面嵌套for循环if语句

对于列表里面嵌套for语句,始终有些迷糊。下面简单举几个例子来说明一下。例如:

a_list = [1,2,3,4,5,6]
new_list = [x for x in a_list]
print(new_list)
>>>[1,2,3,4,5,6]   #但是a_list和new_list指向的不是同一个列表,也就是说,new_list创建了一个新的列表
new_list_list = [x for x in a_list if x%2 == 0]
print(new_list_list)
>>>[2,4,6]

其实这一行代码相当于下面这多行代码的功能,由此可说明列表里面嵌套for语句和if语句比较简洁:

new_list_list=[]
for x in a_list:
    if x%2 == 0:
        new_list_list.append(x)
print(new_list_list)
>>>[1,2,3]

当然这种方式也可以应用于同时从多个列表里面取出元素放在同一个列表里面:

num = [3,4,6]
c_str = ['a','b','c']
com_list = [(x,y) for x in num for y in c_str]
print(com_list)
>>>[(3, 'a'), (3, 'b'), (3, 'c'), (4, 'a'), (4, 'b'), (4, 'c'), (6, 'a'), (6, 'b'), (6, 'c')]
list_com = [(x,y) for x in num for y in c_str if x%2 == 0]
print(list_com)
>>>[(4, 'a'), (4, 'b'), (4, 'c'), (6, 'a'), (6, 'b'), (6, 'c')]

第一次写博客,如有错误,敬请指正,感谢大家~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值