1.推导式规则

[每一个元素或者是和元素相关的操作 for 元素 in 可迭代数据类型] ----------遍历之后挨个处理
[满足条件的元素相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件] ----------筛选功能

2.列表推导式

# 原始的
num_list = []
for i in range(10):
num_list.append(i)
print(num_list) # 现在的---列表推导式
num_list = [i for i in range(10)]
print(num_list)

简而言之,print([i for i in range(10)])就是一个列表推导式。

num_list = [i for i in range(30) if i % 3 == 0]
print(num_list)

例1:30以内能被3整除的数

 num_list = [i*i for i in range(30) if i % 3 ==0]
print(num_list)

例2:30以内能被3整除的数的平方

names_list = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
rcp = [name for lst in names_list for name in lst if name.count('e') == 2]
print(rcp)

例3:找到嵌套列表中名字含有两个‘e’的所有名字

3.字典推导式

 start_dev = {'a':1,'b':2}
end_dev = {start_dev[k]:k for k in start_dev}
print(end_dev)

例1:让字典的键和值对换

 dic = {'a':5,'B':10,'c':4,'A':5}
rcp = {k.lower():dic.get(k.lower(),0)+dic.get(k.upper(),0) for k in dic}
print(rcp)
# result:{'a': 10, 'b': 10, 'c': 4}

例2:合并大小写对应的value值,统一成小写

4.集合表达式

自带去重功能

 squa = {x**2 for x in [1,-1,2]}
print(squa)

5.生成器表达式

# 生成器表达式
g = (i for i in range(10))
for i in g:
print(i)
生成器表达式与列表推导式有什么不同?
1.括号不一样
2.返回的值不一样,生成器表达式几乎不占用内存。

最新文章

  1. Mono 3.2.3 Socket功能迎来一稳定的版本
  2. PHP XDEBUG
  3. 如何提高android串口kernel log等级
  4. AngularJS 中文资料+工具+库+Demo 大搜集
  5. HDU 1160 FatMouse's Speed
  6. String sql = "update web_admin set adminname=? ,password=? where id=?;怎么给“?” 传值?
  7. Spring技术内幕——深入解析Spring架构与设计原理(一)IOC实现原理
  8. leetcode Remove Duplicates from Sorted Array python
  9. java实现cmd的copy功能
  10. nodejs安装不了和npm安装不了的解决方法
  11. mysql常见的优化需要注意的点
  12. Python自学:第三章 使用函数sort( )对列表进行临时排序
  13. Manjaro kde 18.0安装与基本配置
  14. java 线程Thread 技术--1.5 Executor Executors,ThreadPool,Queue
  15. October 30th, 2017 Week 44th Monday
  16. Embarcadero RAD Studio XE5
  17. flask_SQLAlchemy常用数据类型及列选项
  18. Quectel module USB driver for linux
  19. jdbc防止sql注入-PreparedStatement
  20. mac生成ssh公私匙

热门文章

  1. Codeforces Round #562 (Div. 2) A.Circle Metro
  2. Spring boot中应用jpa jpa用法
  3. POJ 1015 Jury Compromise dp分组
  4. html select change事件触发
  5. [转]使用 HTML5 WebSocket 构建实时 Web 应用
  6. JAVA基础之Properties类、序列化流及打印流、commons-IO
  7. CF1168A Increasing by Modulo
  8. CSS冗余简化(持续更新)
  9. 百度地图web 笔记
  10. RK3288开发过程中遇到的问题点和解决方法之Framework