python代码简写(推导式 if else for in))

python代码简写(推导式 if else for in))

修改自https://www.sfk8.com/python/256.html

c = a if a>b else b //如果a>b返回a,否则返回b

a = 1
b = 2
c = a if a>b else b
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

注意当你用上述方式生成列表,但又不引用而只是作为临时参数时,为减少内存开销,应将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

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

a,b=b,a //交换数据

a=1
b=2
a,b=b,a

‘’.join[‘1’,‘2’] //字符list的连接

c = ‘’.join([‘1’,‘2’])

推导式
分为列表推导式(list),字典推导式(dict),集合推导式(set)三种

1.列表推导式也叫列表解析式。

功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表

格式:用中括号括起来,中间用for语句,后面跟if语句用作判读,满足条件的传到for语句前面用作构建先的列表

[x**2 for item in item_list if item>2]

例子:

li=[i*2 for i in range(10) if i % 2 == 0]
print li
[0, 4, 8, 12, 16]

很明显,列表解析式最擅长的方式就是对整个列表分别做相同的操作,并且返回得到一个新的列表,并不会直接返回,需要赋值给变量

2.字典解析式,这个跟列表解析式的用法是差不多的,只不中括号该改成大括号,毕竟字典本身用的就是大括号。

例子:

#快速转换字典键值位置

mca={“a”:1, “b”:2, “c”:3, “d”:4}
dicts={v:k for k,v in mca.items()}
print dicts
{1: ‘a’, 2: ‘b’, 3: ‘c’, 4: ‘d’}

3.集合推导式。

功能:集合推导式跟列表推导式差不多,都是对一个列表的元素全部执行相同的操作,

但集合是一种无重复无序的序列

区别:跟列表推到式的区别在于:1.不使用中括号,使用大括号;2.结果中无重复;3.结果是一个set()集合,集合里面是一个序列

squared={i*2 for i in [1.1,2]}
print squared
set([2, 4])

原文

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值