1.列表推导式列表推导能非常简洁的构成一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形。

   格式:[表达式 for 变量 in 列表]或[表达式 for 变量 in 列表 if 条件]

   过滤条件可有可无,取决于实际应用,只留下表达式

>>> list =[x*x for x in range(10)]
相当于
>>> alist= []
>>> for x in range(10):
也相当于
>>> list= list(map(lambda x:x*x,range(10)))

2.阿凡提与国王比赛下棋,国王说要是izji输了的话阿凡提想要什么他都可以拿的出来。阿凡提说那就要点米吧,棋盘一共64个小格子,在第三个格子里放四粒米,第四个格子里放8粒米,以此类推,后面每个格子里的米都是前一个格子里的2倍,一直把64个格子都放满。需要多少粒米?

>>> sum([2**i for i in range(64)])
18446744073709551615

3.使用列表推导式实现嵌套列表的平铺

>>> vec=[[1,2,3],[4,5,6],[7,8,9]]
>>> [num for elem in vec for num in elem]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
相当于
>>> vec=[[1,2,3],[4,5,6],[7,8,9]]
>>> result =[]
>>> for elem in vec:
  for num in elem:
  result.append(num)
>>> result
[1,2,3,4,5,6,7,8,9]

4,如果不使用列表推导式,可以这样做。

>>> vec=[[1,2,3],[4,5,6],[7,8,9]]
>>> sum(vec,[])
[1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> vec=[[1,2,3],[4,5,6],[7,8,9]]
>>> from itertools import chain
>>> list(chain(*vec))
[1, 2, 3, 4, 5, 6, 7, 8, 9]

5.列出当前文件夹下所有python源文件

>>> import os
>>> [filename for filename in os.listdir('.')if filename.endswith(('.py','.pyw'))]

过滤不符合条件的元素
>>> list = [-1,-4,6,7,5,-2,3,9,-11]
>>>
>>> [i for i in list if i>0]
[6, 7, 5, 3, 9]

6.已知有一个包含一些同学成绩的字典,计算成绩的最高分、最低分、平均分,并查找所有最高分同学。

>>> scores={"zhangsan":45,"lisi":78,"wangwu":40,"zhouliu":96,"zhaoqi":65,"sunba":90,"zhengjiu":78,"wushi":99,"dongshiyi":60}
>>> heighest=max(scores.values())
>>> lowest = min(scores.values())>>> average=sum(scores.values())*1.0/len(scores)
>>> heighest,lowest,average
(99, 40, 72.33333333333333)
>>> heighestPerson=[name for name,score in scores.items()if score == heighest]
>>> heighestPerson
['wushi']

7.在列表推导式中使用多个循环,实现多序列元素组合,并且可以结合条件语句过滤特定元素

>>> [(x,y)for x in range(3) for y in range(2)]
[(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)]
>>> [(x,y) for x in [1,2,3]for y in [3,1,4]if x!=y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

最新文章

  1. 深入学习jQuery选择器系列第七篇——表单选择器
  2. Dapper简明教程
  3. C#字符串的不变性
  4. 最新的hosts
  5. go语言的selector
  6. C#微信公众号开发之网页授权oauth2.0获取用户基本信息(一)
  7. FTS抓包看蓝牙验证的过程
  8. astats日志分析系统
  9. Android JNI之JAVA与C++对象建立对称关联(JNI优化设计,确保JNI调用的稳定性)
  10. development period
  11. 10 条建议让你创建更好的 jQuery 插件
  12. Recursive Depth first search graph(adj matrix)
  13. sqlalchemy-数据库操作
  14. Samba部署共享服务
  15. js 高阶函数 闭包
  16. n2n网络穿透内网
  17. MongoDB shell 介绍
  18. Python大神成长之路: 第三次学习记录 集合 函数 装饰 re
  19. laravel使用过程中一些总结
  20. 小学四则运算结对项目报告【GUI】

热门文章

  1. 【初等数论】费马小定理&欧拉定理&扩展欧拉定理(暂不含证明)
  2. GitHub 访问不顺怎么办?在线等,急
  3. 不使用 MQ 如何实现 pub/sub 场景?
  4. 团队 Gitee 实战训练
  5. Python中使用百分号占位符的字符串格式化方法中%s和%r的输出内容有何不同?
  6. 第3章 Python的数据类型目录
  7. [ACTF2020 新生赛]BackupFile && [ACTF2020 新生赛]Upload &&[GYCTF2020]Blacklist
  8. .NET Core集成Seq+Serilog实现日志中心
  9. js去除html标签
  10. 题解-CF1437F Emotional Fishermen