推导式套路

列表推导式为例的推导式详细格式,同样适用于其他推导式

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整除的数

s = [i for i in range(1,31) if i%3 == 0]
print(s)

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

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

  

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

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

  

字典推导式

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

mcase = {'a': 10, 'b': 34}
mcase_frequency = {mcase[k]: k for k in mcase}
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)
# Output: set([1, 4])

  

练习

过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母

names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva'],
[1,2,'m'],
[3,4,'n']] long_3 = [i.upper() for name in names if len(name)>3 for i in name ]
print(long_3)

  

#求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元祖列表
s  = [(x,y) for x in [0,5,2] for y in [1,5,2]]
print(s)

  

#求M中3,6,9组成的列表M = [[1,2,3],[4,5,6],[7,8,9]]

python:推导式套路的更多相关文章

  1. python推导式pythonic必备【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  2. python推导式pythonic必备

    编程规范 今天公司新出了一套Python编程规范2.0,一直觉得自己写代码路子有点野,所以仔细的看了下. 多数的内容在网上都能搜到,但有几点需要说说 让我觉得羞愧的注释率 公司要求代码注释行,占代码总 ...

  3. Python推导式详解,带你写出比较精简酷炫的代码

    Python推导式详解,带你写出比较精简酷炫的代码 前言 1.推导式分类与用法 1.1 列表推导 1.2 集合推导 1.3 字典推导 1.4 元组推导?不存在的 2.推导式的性能 2.1 列表推导式与 ...

  4. Python推导式

    Python推导式 推导式:是Python中提供的一个非常方便的功能,可以通过一行代码实现创建 list.dict.tuple.set的同时初始化一些值. 1.列表推到式 # -*- coding: ...

  5. python推导式与海象运算符

    背景:介绍两种python用于语句优化的用法 一.推导式 1.推导式简介: Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体. 支持:列表(list).元 ...

  6. python 推导式和迭代器、生成器

    1.常用推导式 推导式是从一个或者多个迭代器快速简洁创建数据结构的一种方法. 1.1 _ 列表推导式 最简单的形式:  [exprssion for item in iterable] 示例:  nu ...

  7. python 推导式

    推导式又称解析式,是Python的一种独有特性.目的是可以从一个数据序列推导出另一个数据序列,适用于python 的list ,dict 和集合 list中的推导式: _list=[i for i i ...

  8. Python 推导式、迭代器、生成器、模块和包

    一.推导式 (一).列表推导式(集合推导式也同理于此) 利用列表推导式,取出1-20内所有偶数 li = [i for i in range(1, 21) if i % 2 == 0] # 如果只有一 ...

  9. Python—推导式

    推导式 推导式:comprehensions(又称解析式),是Python的一种独有特性,相当于语法糖的存在,推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2 ...

随机推荐

  1. MVC框架初识

    MVC全名是Model View Controller,即模型-视图-控制器的缩写,一种软件设计典范,用一种业务逻辑,数据,界面显示分离方法组织代码, 将业务逻辑聚集到一个部件里面,在改进和个性化定制 ...

  2. CentOS 7上安装Pure-FTPd

    # 安装 yum install epel-release yum install pure-ftpd 位置文件位于/etc/pure-ftpd/pure-ftpd.conf # 修改配置文件 # 注 ...

  3. zk observer 节点

    zk 集群中有3种节点:leader,follower,observer,其中 observer 节点没有投票权,即它不参与选举和写请求的投票. 比较 Follower 和 Observer 的代码: ...

  4. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二)(代码篇)

    这篇是上一篇的延续: 用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 源代码在github上可以下载,地址:https://github.com/guoxia ...

  5. C# 远程传输File文件

    /// <summary> /// 向论坛传图片文件 /// </summary> /// <param name="filePath">< ...

  6. 如何把已有SQLSERVER数据库更名而且附加到数据库中?

    如何把已有SQLSERVER数据库更名而且附加到数据库中? 例如:已有数据库:zrmaa,希望更名为jjsh 特别提醒:数据库名中不能加入下划线,因为数据库日志文件有下划线. 把数据库文件mdf和数据 ...

  7. oracle数据库连接 ORA-12638:身份证明检索失败

    连数据库的时候突然报了一个这个 查找各种办法,发现自己从10g换成了11g,不过这个没有什么关系,跟oracle的安全设置有关系, 首先从开始菜单找到Net Manager 打开,选择本地,概要文件, ...

  8. 从零开始学Shell(一)

    1.$表示普通用户,#表示超级用户.2.sh /home/path/script.sh3.chmod a+x script.sh  增加可执行权限    ./script.sh    #./表示当前的 ...

  9. 复现 360 Unicorn Team 黑科技之 HackNFC

    看了2条360 Unicorn Team的微博后,感觉蛮有趣的,打算复现一下 谷歌了下相关资料,在HACKADAY找到了介绍文章 还有2篇北邮工学硕士的论文,欢迎有兴趣的朋友和我一起交流~ 联系方式在 ...

  10. C++取反交换两个数的值

    int a = 1; int b = 2; cout << "a: "<< a << endl; cout << "b: ...