c = a if a>b else b    //如果a>b返回a,否则返回b
>>> a = 1
>>> b = 2
>>> c = a if a>b else b
>>> c
 
 
c = [ i for i in a if i%2==0 ]
 //遍历a,在i为偶数时返回
>>> a = [1,2,3]
>>> c = [i for i in a if i%2==0]
>>> c
[2]
注意当你用上述方式生成列表,但又不引用而只是作为临时参数时,为减少内存开销,应将sum( [ i for i in a if
i%2==0 ] )改成sum( i for i in a if i%2==0 ),
 
 
生成集合:c = { i for i in a if i%2==0 }
 //遍历a,在i为偶数时返回
生成字典:c = { i:i**i for i in a if i%2==0 }
 //遍历a,在i为偶数时返回
 
 
c = [i+j for i in a for j in b if i%2==0 and j%2==0]
 
 //同时嵌套遍历列表a和b,返回i和j同时为偶数时的和。其中for in a属于外层嵌套,for
in b属于内层
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [i+j for i in a for j in b if i%2==0 and
j%2==0]
>>> c
[6, 8]
 
 
 
c = [i if i%2==0 else 1 for i in a]
 //遍历a,如果i为偶数直接返回,否则直接返回1。此处if写在for前面要求必须有else项
>>> a = [1,2,3]
>>> c = [i if i%2==0 else 1 for i in a]
>>> c
[1, 2, 1]
 
 
 
a,b=b,a   //交换数据
>>> a=1
>>> b=2
>>> a,b=b,a
>>> a
2
>>> b
1
 
 
 
''.join['1','2']  //字符list的连接
>>> c = ''.join(['1','2'])
>>> c
'12'
 
转自:http://blog.csdn.net/qq_16234613/article/details/64441428
---------------------------------------------------------------------------------
推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种
 
1.列表推导式也叫列表解析式。
功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表
格式:用中括号括起来,中间用for语句,后面跟if语句用作判读,满足条件的传到for语句前面用作构建先的列表
[x**2 for item in item_list if item>2]
 
例子:
 
1 >>> li=[i*2 for i in range(10) if i % 2 == 0]
2 >>> print li
3  [0, 4, 8, 12, 16]
 
 
很明显,列表解析式最擅长的方式就是对整个列表分别做相同的操作,并且返回得到一个新的列表,并不会直接返回,需要赋值给变量
 
2.第二种是字典解析式,这个跟列表解析式的用法是差不多的,只不中括号该改成大括号,毕竟字典本身用的就是大括号。
例子:
 
1 #快速转换字典键值位置
2 >>> mca={"a":1, "b":2, "c":3, "d":4}
3 >>> dicts={v:k for k,v in mca.items()}
4 >>> print dicts
5 {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
 
 
3.还有一种是集合推导式。
功能:集合推导式跟列表推导式差不多,都是对一个列表的元素全部执行相同的操作,
但集合是一种无重复无序的序列
区别:跟列表推到式的区别在于:1.不使用中括号,使用大括号;2.结果中无重复;3.结果是一个set()集合,集合里面是一个序列
 
1 >>> squared={i*2 for i in [1,1,2]}
2 >>> print squared
3 set([2, 4])
 
 
转自:https://www.cnblogs.com/cenyu/p/5718410.html

python代码简写(推导式 if else for in)的更多相关文章

  1. python基础——列表推导式

    python基础--列表推导式 1 列表推导式定义 列表推导式能非常简洁的构造一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形 2 列表推导式语法 基本格式如下: [expr for va ...

  2. Python生成器、推导式之前襟后裾

    生成器 函数体内有yield选项的就是生成器,生成器的本质是迭代器,由于函数结构和生成器结构类似,可以通过调用来判断是函数还是生成器,如下: def fun(): yield "我是生成器& ...

  3. python的各种推导式

    python的各种推导式(列表推导式.字典推导式.集合推导式) 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体 ...

  4. Python基础-列表推导式

    python中列表推导式有三种数据类型可用:列表,字典,集合 列表推导式书写形式: [表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件] 1,列表推导式 ...

  5. python 3列表推导式的的一点理解!

    python 3列表推导式的的一点理解! Python的列表推导式对于新手来说一般都难以理解,简单看个例子: [x * x for x in range(1,100)] 上面是一个很简单的列表推导式, ...

  6. Python 入门之 推导式

    Python 入门之 推导式 推导式就是构建比较有规律的列表,生成器,字典等一种简便的方式 1.推导式 (1)列表推导式 : <1> 普通循环: [变量 for循环] print([i f ...

  7. python基础知识-8-三元和一行代码(推导式)

    python其他知识目录 1.三元运算(三目运算) 三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值格式:[on_true] if [expression] else [on_false]re ...

  8. Python函数——列表推导式、生成器与迭代器

    列表推导式 产生背景 现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把列表里的每个值加1,你怎么实现? 第一种方法: a = [1,3,4,6,7,7,8,9 ...

  9. Python 拓展之推导式

    写在之前 推导式是从一个或多个迭代器快速简洁的创建数据结构的一种办法,它可以将循环和条件判断结合,从而可以避免语法冗长的代码. 列表推导式 我在之前的文章中(零基础学习 Python 之 for 循环 ...

随机推荐

  1. SAP成都研究院大卫哥:SAP C4C中国本地化之微信小程序集成

    今天的文章来自Wu David,SAP成都研究院C4C开发团队的架构师,在加入团队之前曾经在SAP上海研究院工作,组内同事习惯亲切地称呼他为大卫哥. 大卫哥身高据Jerry目测有1米8以上,是成都C4 ...

  2. Linux Mint,Ubuntu 18 ,Deepin15.7 安装mysql 没有提示输入密码,修改root用户密码过程

    刚刚装Deepin15.7 和 MySQL5.7 发现没有提示用户输入密码的过程(近日发现Linux Mint 和 Ubuntu18 也适用) 百度了一大堆如何修改root密码 也没什么卵用,终于这篇 ...

  3. nutzwk运行后wk-web中生成ehcache.disk.store.dir有什么用,怎么去掉

    nutzwk运行后wk-web中生成ehcache.disk.store.dir有什么用,怎么去掉  发布于 29天前  作者 qq_96c46988  64 次浏览  复制  上一个帖子  下一个帖 ...

  4. EF 状态版 增删改

    1.利用 状态版 实现 增加 . 2.利用状态版 进行 删除 3. 利用状态版 实现 修改 ,修改 方法 有3种 第1种修改方法 第2种修改 方法 第3种修改方法

  5. hbase的coprocessor使用(转)

    http://www.360doc.com/content/13/0320/09/4675893_272623864.shtml

  6. [转]C++ Template

    引言 模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计.C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream. 函数模板 ...

  7. LeetCode804. Unique Morse Code Words

    题目 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", "b" 对应 ...

  8. 用python画小猪佩奇(非原创)

    略作改动: # coding:utf-8 import turtle as t t.screensize(400, 300, "blue") t.pensize(4) # 设置画笔 ...

  9. libvirt笔记(未完待续)

    参考源地址:http://libvirt.org/formatdomain.html http://blog.csdn.net/qq250941970/article/details/6022094 ...

  10. html之table&select不为人知的操作

    table标签和其它标签不一样,他有属性和方法! table属性: rows      可以得到table的row集合 cells      得到table所有单元格 table方法: insertR ...