列表生成式相关技巧,相关问题
来源:互联网 发布:单片机秒表课程设计 编辑:程序博客网 时间:2024/05/29 02:03
1.用python实现一个list[1-100] 例如 [1, 2, 3,5,6,7,8,9.......]实现[[1,2,3],[4,5,6],[7,8,9]......]
a = list(range(1,1001))b=[a[x:x+3] for x in range(0,len(a),3)]
2.已知 列表li=[1,3,2,5,4] 找出列表中元素为偶数且下下标也为偶数的元素
第一种方法:b=[a[i] for i in range(0,len(li),2) if a[i]%2==0 ]
第二种方法:b=[ x for x in li if li.index(x)%2==0 and x%2==0] 输出b=[2,4]
如果把第二种方法中的and改成&输出结果为 b=[1,2,4] 求解为什么?????前者是在python交换模式运行的结果
3.匿名函数lambda
test = lanmbda x, y:x+y 该式子定义了一个匿名函数
上式可以理解为以下的意思
def test(x, y):
return x+y
4.列表推导式+匿名函数
li=[lambda :i for i in range(5)] li的结果为由5个匿名函数组成的列表
分析: 上式相当于下面的理解
li=[]
for i in range(5):
def func():
return i
li.append(func)
遍历li
for a in li:
print(a()) 结果为4,4,4,4,4
5. 继续扩展 :li=[lambda x=i :x for i in range(5)] li的结果为由5个匿名函数组成的列表
分析: 上式相当于下面的理解
li=[]
for i in range(5):
def func(x=i):
return i
li.append(func)
遍历li
for a in li:
print(a()) 结果为0,1,2,3,4
6.接着延伸 li=(lambda : i for i in range(5))
li=[]
for i in range(5):
def func():
yield i
li.append(func)
for a in li:
print(a()) 结果为0,1,2,3,4
- 列表生成式相关技巧,相关问题
- 生成树相关问题
- 生成树相关问题
- 生成树相关问题
- 生成树相关问题
- hive近期相关问题列表
- C++初始化列表相关问题
- 旅行商(TSP)及相关问题列表
- select 下拉列表相关的问题
- C++初始化列表的相关问题
- Assetbundle相关问题及使用优化技巧
- php生成静态页相关问题
- xsd生成实体类相关问题
- VTK: vtkImagePlaneWidget生成纹理切片相关问题
- VS2010生成动态库相关问题
- 相关文章列表
- 相关网站列表
- 相关会议列表
- 美团大众点评面试经验——后台开发(2017最常见的面试问题)
- 双重循环的运用及void的函数调用
- ubuntu17.04以及17.10安装java7,jdk7,jre7
- 数组中寻找插入位置算法
- Array 和List对比之Partition
- 列表生成式相关技巧,相关问题
- Oracle介绍
- POJ 1019 Number Sequence【数论】
- mongodb批量更新某个字段
- CentOS7使用firewalld打开关闭防火墙与端口
- React学习(三):性能调优
- 多线程:C# 多线程控制 通讯 和切换
- ChartControl横向条形图
- LintCode 分割字符串