一、推导式套路

除了我们之前所学习的列表推导式和生成器表达式之外,还有字典推导式、集合推导式等等。

下面就是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式。

variable = [out_exp_res for out_exp in input_list if out_exp == 2]
out_exp_res:  列表生成元素表达式,可以是有返回值的函数。
for out_exp in input_list:  迭代input_list将out_exp传入out_exp_res表达式中。
if out_exp == 2:  根据条件过滤哪些值可以。

二、列表推导式

例一:30以内所有能被3整除的数

multiples = [i for i in range(31) if i % 3 == 0]
print(multiples)

例二:30以内所有能被3整除的数的平方

multiples = [i ** 2 for i in range(31) if i % 3 == 0]
print(multiples)

例三:找到嵌套列表中名字含有两个“e“的所有名字

names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']] print([name for lst in names for name in lst if name.count('e') >= 2]) # 注意遍历顺序,这是实现的关键

三、字典推导式

例一:将一个字典的key和value对调

mcase = {'a': 10, 'b': 34}
mcase_frequency = {value:key for key, value in mcase.items()}
print(mcase_frequency)

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

mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}
mcase_frequency = {k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) for k in mcase.keys()}
print(mcase_frequency)

四、集合推导式

例:计算列表中每个值的平方,自带去重功能

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

  

最新文章

  1. 2016年6月份那些最实用的 jQuery 插件专辑
  2. 《深入浅出WPF》笔记一
  3. Linux在Hyper-V中实现与Windows的宽带共享上网
  4. SQLite数据库在本地可以写,发布到服务器就不能写
  5. 17.allegro导入导出[原创]
  6. ACM - ICPC World Finals 2013 H Матрёшка
  7. HDOJ/HDU 2203 亲和串(简单的判断~Java的indexOf()方法秒)
  8. altium designer Summer09出现的问题解决方案
  9. H5中背景音乐无法自动播放问题
  10. JS或jQuery实现一组复选框的全选和取消全选?
  11. Quartz 任务调度(转)
  12. Web自动化框架LazyUI使用手册(7)--浏览器常用操作API
  13. 关于Boost在工程下的配置
  14. 最近公共祖先(least common ancestors,LCA)
  15. python之初级篇2
  16. Linux--抓取Appium网站命令
  17. node项目中用到的一些模块
  18. 米勒罗宾素性测试(Miller–Rabin primality test)
  19. TabHost随着输入法软键盘出现而上浮的问题
  20. PHP 数组与CSV文件互转

热门文章

  1. redis主从中断异常处理
  2. Java Web-Redis学习
  3. VBA While Wend循环
  4. 如果只有1小时学Python,看这篇就够了
  5. css 层叠 比较特殊性
  6. Python基础Day5
  7. 异常-Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=hdfs, access=WRITE, inode="/hbase":root:supergroup:drwxr-xr-x
  8. 【OF框架】使用OF.WinService项目,添加定时服务,进行创建启动停止删除服务操作
  9. 基于fastai的分类网络
  10. frp服务搭建