推导式

本文介绍了Python推导式,它通过一行循环判断遍历数据,具有方便简洁的特点,且只能包含循环和单项分支判断。推导式分为列表、集合、字典三种,还通过代码示例展示了基本语法、带条件判断、多循环以及带判断条件的多循环推导式的使用。
# ### 推导式
'''
通过一行循环判断,遍历出一系列数据的方式就是推导式
特点:方便,简介,可以实现一些简单的功能
推导式当中只能跟循环和判断(单项分支)

种类中分为三种: 列表推导式,集合推导式,字典推导式
[val  for val in  iterable]
{val  for val in  iterable}
{a:b  for a,b in iterable} 
'''

# (1)基本语法
# [1,2,3,4]  => [2,4,6,8]
lst = [1,2,3,4]
lst2 = []
for i in lst:
	res = i * 2
	lst2.append(res)
print(lst2)


res = [i for i in range(1,5)]
# 改写
res = [i * 2 for i in range(1,5)]
print(res)

# [1,2,3,4]  => [2,8,24,64]
'''
1-> 2   乘以2的1次幂
2-> 8   乘以2的2次幂
3 -> 24 乘以2的3次幂
4 -> 64 乘以2的4次幂
'''
# 把想要的值 写在for的左侧
res = [i << i for i in range(1,5)] # 1 << 1  2 << 2 3 << 3 4<<4
print(res)

# (2)带有条件判断的推导式
lst = [1,2,3,4,5,6,67,7,8,98,9]
lst2 = []
for i in lst:
	if i % 2 == 0:
		lst2.append(i)
print(lst2)

# 推导式写法
res = [i for i in lst if i %2 == 0]
print(res)


# (3)多循环推导式
lst1 = ["邓远文","舒畅","易思","仿真枪"]
lst2 = ["张国成","王博","邱玉龙","苏传红"]
lst = []
for  i  in  lst1:
	for j in lst2:
		res = i + '♥♥♥' +j
		lst.append(res)
print(lst)
# "谁 ♥♥♥ 谁"

res = [i+'♥♥♥'+j for i in lst1 for j in lst2 ]
print(res)


# (4)带有判断条件的多循环推导式
lst1 = ["邓远文","舒畅","易思","仿真枪"]
lst2 = ["张国成","王博","邱玉龙","苏传红"]
lst_new = []
for i in lst1:
	for j in lst2:
		if lst1.index(i) == lst2.index(j):
			strvar = i+'♥♥♥'+j
			lst_new.append(strvar)

print(lst_new)

res = [i+'♥♥♥'+j for i in lst1 for j in lst2  if lst1.index(i) == lst2.index(j)]
print(res)

  

转载于:https://www.cnblogs.com/huangjiangyong/p/10906590.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值