anggame安博电竞网址_安博电竞app_安博网址
anggame安博电竞网址

长汀天气,美林退烧药-anggame安博电竞网址_安博电竞app_安博网址

admin admin ⋅ 2019-05-16 08:01:26

迭代长汀气候,美林退烧药-anggame安博电竞网址_安博电竞app_安博网址器

迭代是Python最强壮的功用之一,是拜访调集元素的一种办法。

迭代器是一个能够记住遍历的方位的目标。

迭代器目标从调集的第一个元素开端拜访,直到一切的元素被拜访完完毕。迭代器只能往前不会撤退。

迭保卫咱们的工作怎么做代器有两个根本的办法:iter()next()

字符串,丰丽婷列表或元组目标都可用于创立迭代器:

实例(Python 3.0+)

>>>list=[1,2,3,4]
>>> it = iter(list) # 创立迭代器目标
>>> print (next(it)) # 输出迭代器的下一个元素
1
>>> print (next(it))
2
>>>

迭代器目标能够运用惯例for句子进行遍历:

实例(Python 3.0+)

#!/usr/bin/python3

list=[1,2,3,4]
it = ite自weir(list) # 创立迭代器目标
for x in it:
print (x, end=" ")

履行以上程序,输出成果如下:

1 2 3 4

也能够运用 next() 函数:

实例(Python 3.0+)

#!/usr/bin/python3

import sys # 引进 sys 模块

list=[1,无敌牧场主2,3,4]
it = iter(list) # 创立迭代器目标
长汀气候,美林退烧药-anggame安博电竞网址_安博电竞app_安博网址
while True:
try:
print (next(it))
except StopIteration:
sys.exit()

履行以上程序,输出成果如下:

1
2
3
4

创立一个迭代器

把一个类作为一个迭代器运用需要在类中完结两个办法 __iter__() 与 __next__() 。

假如你现已了解的面向目标编程,就知道类老陈敬说都有一个结构函数,Python 的结构函数为 __init__(), 它会在目标初始化的时分履行。

更多内容查阅:Python3 面向目标

__iter__() 办法回来一个特别的迭代器目标, 这个迭代器目标完结了 __n硬梆梆ext__() 办法并经过 StopIteration 反常标识迭代的完结。

__next__杜达熊() 办法(Python 2 里是 next())会回来下一个迭代器目标。

创立一个回来数字的迭代器,初始值为 1,逐渐递加 1:

实例(Python 3.密秘爱0+)

class MyNumbers:
def长汀气候,美林退烧药-anggame安博电竞网址_安博电竞app_安博网址 __iter__(self):
self.a = 1
return self

def __next__(self):
x = self.a
self.a += 1
return x

myclass = MyNumbers()
myiter = iter(myclass)

print(next(myiter))
print(next(myiter))
print(next(myiter))美足胜桃夭
p傅斯遇rint(next(myiter))
print(next(myiter))

履行输出成果为:

1
2
3
4
5

StopIteration

StopIteration 反常用于标识迭代的完结,避免呈现无限循蔡英挺最新去向环的状况,在 __next__() 办法中咱们能够设置在完结指定循环次数后触发 StopIteration 反常来完毕迭代。

在 20 次迭代后中止吉狄康帅履行:

实例(Python 3.0+)

class MyNumbers:
def __iter__(self):
self.a = 1
return self

def __next__(self):
if self.a <= 20:
x = se空井苍lf.a
self.a += 1
return x
el长汀气候,美林退烧药-anggame安博电竞网址_安博电竞app_安博网址se:
raise StopIt赵圣桑eration孙亦文举假奶装纯

myclass = MyNumbers()
myiter = iter(myclass)

for x in myit李清波征文er:
print(x)

履行输出成果为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

生成器

在 Python 中,运用了 y始螈ield 的函数被称为生成器(generator)。

跟一般函数不同的是,生成器是一个回来迭代器的函数,只能用于迭代操作,更简单点了解生成器便是一个迭代器。

在调用生成器运转的过程中,每次遇到 yield 时函数会暂停并保存当时一切的运转信息,回来 yield 的值, 并在下一次履行 next() 办法时从当时方位持续运转。

调用一个生成器函数,回来的是一个迭代器目标。

以下实例运用 yield 完结斐波那契数列:

实例(Python 3.0+)

#!/usr/bin/python3

import范阳帽 sys

def fibonacci(n): # 生成器函数 - 斐波那契
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a,长汀气候,美林退烧药-anggame安博电竞网址_安博电竞app_安博网址 b = b, a + b
counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器回来生成

while True:
try:
print (next(f), en长汀气候,美林退烧药-anggame安博电竞网址_安博电竞app_安博网址d=" ")
except StopIteration:
givemefive什么意思sys.exit()

履行以上程序,输出成果如下:

0 1 1 2 3 5 8 13 21 34长汀气候,美林退烧药-anggame安博电竞网址_安博电竞app_安博网址 55

相关新闻

admin

admin

TA太懒了...暂时没有任何简介

精彩新闻