python 中的列表生成器

185 篇文章 0 订阅
156 篇文章 5 订阅
#列表生成式:用来生成列表,在元列表的基础上生成一个新列表,可以让代码更简洁
格式:
[exp for var in iterable]
exp:表达式
var:变量
iterable:可迭代对象
执行过程:
1,先遍历可迭代对象中的元素
2,将此元素赋值给var
3,将var的值作用到exp这个表达式上
4,将表达式的结果生成一个新列表
'''
# range在python2中返回一个列表 python3中返回的是一个可迭代对象
li=[i for i in range(1,11)]  #两个变量i要一致
print(li)
l1=[1,2,3,4]
l2=[i*i for i in l1]
print(l1)
print(l2)   #[1, 2, 3, 4]
            #[1, 4, 9, 16]
l1=[1,2,3,4]
l2=[]
for i in l1:
    l2.append(i*i)
print(l1)
print(l2)
#生成一个2n+1的数字,n的取值范围是2-8
# l4=[(2*i+1)for i in range(2,9)]
l4=[2*i+1 for i in range(2,9)]
print(l4)

格式二:

[exp for var in iterable if 判断条件]

1,遍历得到每一个元素

2,将遍历得到的元素赋值给var

3,将var的值作用到if语句上

4,如果满足条件就将满足条件的值作用到exp表达式上

5,将exp表达式的运算结果追加到新的列表

 

# 例子

#原列表中的数据是1-10,生成一个新列表:数据是,所有的偶数

#循环

l5=list(range(1,11))

l6=[]

for i in l5:

if i%2==0:

l6.append(i)

print(l6)

#使用列表生成式

l5=list(range(1,11))

l6=[i for i in l5 if i%2==0]

print(l6)

# 例子

l7=[10,9,5,38,2,34,56]

l8=[i for i in l7 if i>10]

print(l8)

# 例子

l9=[i for i in range(11) if i%2] #i%2表达式不写值默认是1true,0=Flase,1=True

print(l9) #这里是奇数

# 例子

格式三,嵌套循环

循环

l10=["a",'b','c','d']

l11=['f','j']

l12=[]

for i in l10:

for j in l11:

l12.append(i+j)

print(l12)

使用列表生成式:

l10=["a",'b','c','d']

l11=['f','j']

l12=[i+j for i in l10 for j in l11]

print(l12)

 

格式4

有else语句时使用,注意这个判断条件都放for前面

例子:

循环

l14=['Abc','DEF',10]

l15=[]

for i in l14:

if isinstance(i,str):

l15.append(i.lower())

else:

l15.append(i)

print(l15)

使用列表生成式,大写字母变小写,不是的不变

l14=['Abc','DEF',10]

l15=[i.lower() if isinstance(i,str) else i for i in l14 ]

print(l15)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值