191125 python 列表list推导式详解

什么是列表推导式?

列表推导式提供了一种简洁的方法创建列表;
列表推导式可以使用简洁的方式来快速生成满足特定需求的列表;

# 公式
【 表达式 for 变量 in 序列或迭代对象 条件】

举例:

# 如果不用列表推导式,怎么添加新的数据到新的列表中?
# (将循环出来的偶数的平方加入列表中)
>>> newlist = []
>>> for x in range(10):
...     if x%2 == 0:
...             newlist.append(x*x)
... 
>>> newlist
[0, 4, 16, 36, 64]
>>> 

# 使用列表推导式
>>> newlist = [x*x for x in range(10) if x%2 == 0]
>>> newlist
[0, 4, 16, 36, 64]
>>> 

列表推导式的应用

嵌套列表的平铺

# 常规循环实现
>>> mylist = [[1,2,3],[4,5,6],[7,8,9]]
>>> mylist1 = []
>>> for a in mylist:
...     for b in a:
...             mylist1.append(b)
... 
>>> mylist1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> 


# 使用列表推导式实现嵌套列表的平铺
>>> mylist3 = [b for a in mylist for b in a]
>>> mylist3
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> 


过滤元素,只取偶数部分

# 分布式操作
>>> mylist = [[1,2,3],[4,5,6],[7,8,9]]
>>> mylist1 = []
>>> for a in mylist:
...     for b in a:
...             if b%2 == 0:
...                     mylist1.append(b)
... 
>>> mylist1
[2, 4, 6, 8]
>>> 

# 使用列表推导式
>>> mylist3 = [b for a in mylist for b in a if b%2 ==0]
>>> mylist3
[2, 4, 6, 8]
>>> 

列表推导式与函数的结合

# 求n>0的数,奇数偶数返回的值不一样
>>> def func(n):
...     if n%2==0:
...             n = n*n
...     else:
...             n = n+1
...     return n
... 
>>> [func(n) for n in [-1,-2,1,2] if n>0]
[2, 4]
>>> 

# 利用公式进行转换
【 表达式 for 变量 in 序列或迭代对象 条件】
>>> list4 = [n*n if n%2==0 else n+1 for n in [-1,-2,1,2] if n>0 ]
>>> list4
[2, 4]
>>> 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值