推导式及相关用法

157_了解推导式

推导式
目标:

  • 列表推导式
  • 字典推导式
  • 集合推导式
    一、列表推导式
    作用:用一个表达式创建一个有规律的列表或控制一个有规律列表。
    列表推导式又叫列表生成式。

158_while循环创建有规律的列表

需求:创建一个0-10的列表。
while循环实现创建有规律的列表,代码实现如下所示:

#需求:0,1,2,3,4....
#1.循环实现  2.列表推导式(化简代码:创建或控制有规律的列表)
"""
1.1 创建空列表
1.2 循环将有规律的数据写入到列表
"""
list1 =[]
i =0
while i <10:
    list1.append(i)
    i +=1

print(list1)

while循环实现创建有规律的列表
运行结果:
运行结果

159_for循环创建有规律的列表

for循环实现创建有规律的列表,代码实现如下所示:

#需求:0,1,2,3,4....
#1.循环实现  2.列表推导式(化简代码:创建或控制有规律的列表)
"""
1.1 创建空列表
1.2 循环将有规律的数据写入到列表
"""
#while实现----------
# list1 =[]
# i =0
# while i <10:
#     list1.append(i)
#     i +=1

# print(list1)

#for实现---------
list1 =[]
for i in range(10):
    list1.append(i)

print(list1)

for循环实现创建有规律的列表
运行结果:
运行结果

160_体验列表推导式

列表推导式实现创建有规律的列表,代码如下所示:

#需求:0,1,2,3,4....
#1.循环实现  2.列表推导式(化简代码:创建或控制有规律的列表)
"""
1.1 创建空列表
1.2 循环将有规律的数据写入到列表
"""
#while实现----------
# list1 =[]
# i =0
# while i <10:
#     list1.append(i)
#     i +=1

# print(list1)

#for实现---------
# list1 =[]
# for i in range(10):
#     list1.append(i)

# print(list1)

#列表推导式实现---------
list1 =[i for i in range(10)]
print(list1)

列表推导式实现创建有规律的列表
运行结果:
运行结果

160_带if的列表推导式

需求:创建0-10的偶数列表

  • 方法一:range()步长实现
  • 方法二:If实现
#需求:0-10偶数数据的列表
#1.简单列表推导式  range步长
list1 =[i for i in range(0,10,2)]
print(list1)

#2.for循环加if 创建有规律的列表
list2 =[]
for i in range(10):
    if i % 2 ==0:
        list2.append(i)

print(list2)

#3.把for循环配合if的代码  改写  带if的列表推导式
list3 =[i for i in range(10) if i %2 ==0]
print(list3)

带if的列表推导式
运行结果:
运行结果

161_多for实现列表推导式

需求:创建列表如下
[(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]
多for实现列表推导式的情况如下所示:

#数据1: 1 和2  range(1,3)
#数据2: 0,1,2  range(3)
list1 =[]
for i in range(1,3):
    for j in range(3):
        #列表里面追加元组:循环前准备一个空列表,然后这里追加元组数据到列表
        list1.append((i,j))

print(list1)

#多个for实现列表推导式
list2 =[(i,j) for i in range(1,3) for j in range(3)]
print(list2)

#多for的列表推导式等同于for循环嵌套

多for实现列表推导式的情况
运行结果:
运行结果

162_体验字典推导式

思考:如果有如下两个列表:

list1 =['name','age','gender']
list2 =['Tom',20,'man']

如何快速合并为一个字典?
答:字典推导式
字典推导式作用:快速合并列表为字典或提取字典中目标数据。
快速体验:
1.创建一个字典:字典key是1-5数字,value是这个数字的3次方。

#创建字典  key是1-5的数字,value是这个数字的3次方
#dict1 ={k:v for i in range(1,5)}
dict1 ={i:i**3 for i in range(1,5)}
print(dict1)

创建一个字典:字典key是1-5数字,value是这个数字的3次方
运行结果:
运行结果

164_合并两个列表为字典

将两个列表合并为一个字典,代码实现如下所示:

list1 = ['nmae','age','gender']
list2 = ['gaozhenyang',20,'man']

dict1 ={list1[i]:list2[i] for i in range(len(list2))}
print(dict1)

将两个列表合并为一个字典
运行结果:
运行结果
当Key值的数据个数和value值的数据个数不同时,len函数统计数据多的列表数据个数情况如下所示:

list1 = ['nmae','age','gender','id']
list2 = ['gaozhenyang',20,'man']

dict1 ={list1[i]:list2[i] for i in range(len(list1))}
print(dict1)

当Key值的数据个数和value值的数据个数不同时
运行结果:
运行结果
当Key值的数据个数和value值的数据个数不同时,len函数统计数据少的列表数据个数情况如下所示:

list1 = ['nmae','age','gender','id']
list2 = ['gaozhenyang',20,'man']

dict1 ={list1[i]:list2[i] for i in range(len(list2))}
print(dict1)

#总结:
#1.如果两个列表数据个数相同,len统计任何一个列表的长度都可以
#2.如果两个列表数据个数不同,len统计数据多的列表数据个数会报错;len统计数据少的列表数据个数不会报错

当Key值的数据个数和value值的数据个数不同时,len函数统计数据少的列表数据个数情况
运行结果:
运行结果

165_提取字典中目标数据

需求:提取上述电脑数量大于等于200的字典数据

counts ={'MBP':268,'HP':125,'DELL':201,'Lenovo':199,'acer':99}

#1.需求:提取电脑台数大于等于200
#2.获取所有键值对数据,判断value值是否大于等于200,并返回字典数据
print(counts.items())

dict1 ={key:value for key,value in counts.items() if value >=200}
print(dict1)

提取字典中目标数据
运行结果:
运行结果

166_集合推导式

需求:创建一个集合,数据为下方列表的2次方。

list1 =[1,1,2]
list1 =[1,1,2]

set1 ={i**2 for i in list1}
print(set1)
#集合有去重功能,所以这个集合数据只有两个返回结果分别是1,4

集合推导式
运行结果:
运行结果
注意:集合有数据去重功能。

167_推导式知识点总结

  • 推导式的作用:简化代码
  • 推导式写法
#列表推导式
[xx for xx in range()]

#字典推导式
{xx1:xx2 for ...in ...}

#集合推导式
{xx for xx in ...}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陌上花开,静待绽放!

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

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

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

打赏作者

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

抵扣说明:

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

余额充值