Python 基础入门第九讲 推导式,迭代器,生成器

本文详细介绍了Python中的推导式,包括列表、字典和集合推导式,以及如何与if条件结合使用。接着讨论了迭代器的概念、判断对象是否为迭代类型和迭代器的方法。此外,还深入探讨了生成器,包括通过yield构建生成器的两种方式,以及send()方法的使用。文章以实例解析了推导式、迭代器和生成器的工作原理和应用。
摘要由CSDN通过智能技术生成

第九讲

一. 推导式

1. 列表推导式

列表推导式是一种快速生成列表的方式,其形式我们通过案例来讲一下:
比如我们有一个需求,想要生成一个列表[0.5,1.0,1.5,2.0,2.5…10.0],我们可以这样实现:

li = []
for i in range(1,21):
	li.append(i/2)
print(li)

通过列表推导式,我们可以将for循环写入列表内,则可以这么写:

li = [i/2 for i in range(1,21)]
print(li)

这样就可以更快速,更方便的生成列表,前面是对于i的处理,后面是循环语句。
多讲个例子,比如我们想随机生成一个列表,里面的整数大于-10,小于10:

import random
li = [random.randint(-10,10) for i in range(10)]

random库需要导入,其中.randint(x,y)是在x和y之间随机取一个整数的意思,需要注意的是,这里是可以取到x和y的,for循环在这里只是充当了一个计数器的作用。

再讲一个例子:
现在有一个字典:

dic = {
   'name':'Tom','age':'18','gender':'male'}

想抽取其中的元素,变成以下形式的列表:

[key:value,key:value]

代码如下:

li = [i+':'+j for i,j in dic.items()]

需要注意一下,dic.items()是返回dict_items([(key,value),(key,value)......])的形式,如果是for i in dic.items(),i代表的是元组(key,value),使用两个参数才会分别代表key和value。

2. 列表推导式和if联用

现在有一个列表:

li = [-7, 2, -2, -3, -5, 10, 5, -1, 10, -8]

我们想要将其中小于0的数字拿出来,平方后组成一个新的数列,可以这么处理:

li = [-7, 2, -2, -3, -5, 10, 5, -1, 10, -8]
li1 = []
for i in li:
	if i < 0
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值