python:列表推导式

列表推导式:用一行代码生成列表。
格式: [ 表达式 for i in 可迭代对象 (if 条件)]。
含义:从可迭代对象中取出(满足if条件的)元素,然后进行表达式运算,得到的结果组成列表。
其中,if 条件不是必须的
表达式:可以是i 本身,也可以对i进行加减乘除等各种运算,比如说可以是i+2,i-2,2i,i/2,i**2 …;
可迭代对象:按照某种顺序可依次遍历某个对象中每一个元素,在python语言中,可迭代对象有五个,即列表,字典,元组,集合,字符串;

示例1. 选出10以内能被2整除的数,并返回这个数的平方:

法一:正常创建列表
y=[]
for i in range(10):
	if i%2==0:
		y.append(i**2)
print(y)
#[0,4,16,32,64]
法二:列表推导式:
y=[x**2 for i in range(10) if i % 2 == 0]
print(y)
#[0,4,16,32,64]

示例2:过滤掉列表中字符串长度小于等于3的字符串:

方法一:正常创建列表:
y1=[]
x1=['I','love','writing','new','novel','but','time','is','not','enough']
for i in x1:
	if len(i)>3:
		y1.append(i)
print(y1)
['writing','novel','time','enough']
方法二:列表推导式:
x1=['I','love','writing','new','novel','but','time','is','not','enough']
y1=[i for i in x1 if len(i)>3]
print(y1)
['writing','novel','time','enough']

####思考####:
上面已经提过,python语言中有五个迭代对象,既然有列表推导式,那有没有元组推导式?字典推导式?集合推导式?字符串推导式?
没有字符串推导式!
没有元组推导式,但有生成器表达式,它与列表推导式语法一致,唯一区别就是将最外面的中括号换成小括号,即(表达式 for i in 可迭代对象 (if 条件));
集合推导式:将中括号换成大括号,即 { 表达式 for i in 可迭代对象 (if 条件)} ;
字典推导式:将中括号换成大括号的同时,需要将 [ 表达式 for i in 可迭代对象 (if 条件)]中的表达式换成键值对,举个例子:

#创建一个以0-4五个数字为键,键+1为对应的值的字典
dict={i:i+1 for i in range(5)}
print(dict)
{0:1,1:2,2:3,3:4,4:5}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值