Python基础——列表推导式,集合推导式

Python基础——列表推导式,集合推导式

列表推导式

利用其它列表创建新的列表
工作原理类似for循环,即可对的得到的元素进行转换变形,基本格式如下
可有多个for语句:
当有多个for时,从左到右——>从内到外的顺序执行for

[expr for value in collection if condition]

expr:操作
condition:判断条件

实例:
将列表中的每个元素乘3得到新的列表

#定义一个列表
lis = list(range(5))
lis2 = [value * 3 for value in lis]
print(lis2)

在这里插入图片描述
将两个列表的元素相加组成新的列表
多个for的列表推导式

#定义一个列表
lis = list(range(3))
print('列表lis:',lis)
lis2 = list(range(3,6))
print('列表lis2',lis2)
lis4 = [lis[i]+lis2[i] for i in range(len(lis))]#对应元素相加成新列表
lis3 = [x+y for x in lis for y in lis2]#等价于嵌套循环,列表中的一个元素和另一个列表中的每个元素相加成新列表
print(lis4)
print(lis3)

输出:
在这里插入图片描述

  • 把列表names = [‘Joe’,‘Bill’,‘Jefferson’,‘Andy’,‘Wesley’,‘Keven’,‘Tom’, ‘Alice’,‘Jill’,‘Ana’,‘Wendy’,‘Jenny’,‘Sherry’,‘Eva’]中长度大于5的元素转化成大写并添加到新的列表中
names = ['Joe','Bill','Jefferson','Andy','Wesley','Keven','Tom', 'Alice','Jill','Ana','Wendy','Jenny','Sherry','Eva']
lis2 = [value.upper() for value in names if len(value)>5]
print(lis2)

输出:
在这里插入图片描述

集合推导式

集合推导式类似列表推导式,区别在于用{}替代[]

{ expr for value in collection if condition }

enumerate() 函数函数访问

enumerate() 函数函数访问

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

enumerate(sequence, [start=0])

sequence :一个序列、迭代器或其他支持迭代对象。
start :下标起始位置。默认从第一个到最后一个
返回 enumerate(枚举) 对象。
实例:

#enumerate(sequence, [start=0])方法的使用
#定义一个可迭代对象,这里取数列
lis = ['e','r','t','6']
#打印数列的索引和值
for i,item in enumerate(lis):
    print(i,item)
print('------------打印第一个到第三个元素的索引和值---------------')
#打印第一个到第三个元素的索引和值
for i,item in enumerate(lis[0:3]):
    print(i,item)

输出:
在这里插入图片描述

在for循环中使用enumeration()函数

从序列中获取索引和对应的值

例题:将列表用for循环添加到字典中

#用for循环将列表中的元素添加到字典中,索引作为value对应的Key
#定义一个列表
lis = ['flower','orange','bananer','apple']
#创建一个空字典
dic = {}
#用一个for循环循环出元素以及对应的key

for i,item in enumerate(lis):
    # print(i,item)
    #把循环出来的元素一次添加到字典里“
    dic.update({i:item})
print(dic)#打印字典
###等价于
dic2 = dict(list(enumerate(lis)))
print(dic2)

输出
在这里插入图片描述

range()函数

rang()函数返回一个整数序列的对象,
range(start,stop[,step])可以添加步长,步长不添加时默认为1
start:计数从start开始,默认为0 range(5)等价于range(0,5)
stop:计数到stop结束,但不包括stop
step:步长,默认为1, range(5) <=> range(0,5,1)

print('--------------使用range()函数打印100,99,98,...0---------------')
print([i for i in range(100,-1,-1)])
print('--------------使用range()函数打印0~5------------')
for i in range(5):
    print(i,end='\t')
print()
#用range()创建列表
print('--------------使用range()创建列表0~5------------')
print()
lis = list(range(5))
print(lis)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

企鹅家的北极熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值