Python3笔记5

一、迭代、生成器、推导式
1.了解迭代器的使用和应用
2.使用迭代器生成序列
3.使用生成器生成序列
4.理解和使用列表推导式
迭代器:
迭代器可用于操作列表、字符串、元组、文件和字典。
迭代器可以使用_next_()方法移动到下一个元素。迭代器可以遍历任何可迭代的对象,包括列表、元组、字符串或目录。当没有更多的元素时,那么抛出一个StopIteration异常。
for 实现的迭代

L = [1, 2, 3, -4, -5, -6]
p = []
n = []
for num in L:
    if(num>0):
        p.append(num)
    elif(num<0):
        n.append(num)
print('positive numbers:', p, 'negative number', n)

结果:

positive numbers: [1, 2, 3] negative number [-4, -5, -6]

迭代:

L = [1, 2, 3, -4, -5, -6]
p = []
n = []
t = iter(L)
try:
    while True:
            x = t.__next__()
            if x >= 0:
                p.append(x)
            else:
                n.append(x)
except StopIteration:
    print('positive number:', p, 'negative number:' , n)

结果:

positive number: [1, 2, 3] negative number: [-4, -5, -6]

定义迭代对象:
可以定义一个类,其中_init_、_iter_和_next_可以根据需求定义。init函数初始化类的变量,iter定义迭代机制,next实现跳转到下一项。
生成器:
生成器是生成所需序列的函数。
与函数存在一个区别。

def arithmetic_progression(a, d, n):
    i =1
    while i <=n:
        yield (a+(i-1)*d)
        i +=1

a= int(input())
d= int(input())
n= int(input())

ap = arithmetic_progression(a, d, n)
print(ap)
for i in ap:
    print(i)

结果:

1
3
8
<generator object arithmetic_progression at 0x00000207A85D44C0>
1
4
7
10
13
16
19
22

推导式:
便于编程。
例如:

L1 = [x**3 for x in range(10)]
print(L1)

结果:

[0, 1, 8, 27, 64, 125, 216, 343, 512, 729]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值