目录
Python 内置了4种常用迭代函数
for循环,循环/遍历一个可迭代对象,主要是用来遍历 序列(列表、字符串、元祖)、字典和集合
enumerate(seq) # 编号迭代
sorted(seq) # 排序迭代
reversed(seq) # 翻转迭代
zip(seq1,seq2....) # 并行迭代
a = 'abc'
for index,value in enumerate(a): # 在迭代的时候既返回序列的编号(默认从0开始),又返回序列中元素
print(index,value) # 需要两个循环变量,分别接收编号和元素的值
>>> 0 a
1 b
2 c
# sorted() 排序迭代
# for循环变量的时候, 默认先遍历序列中较小的值,后遍历序列中较大的值。
# 可迭代对象中的元素,需要是可排序的同类数据
a = [3,5,9,6]
for i in sorted(a):
print(i)
>>> 3,5,6,9
# reversed() 翻转迭代
# 将可迭代对象中的元素,从尾到头,进行遍历
# 不是大小排序
a = [1,5,4,2]
for i in reversed(a):
print(i)
>>>2,4,5,1
# zip()
# 同时遍历可迭代对象中,同一序号元素。
# 如果元素长度不一致,只遍历到最短的序列长度
x = [1,2]
y = [3,4]
z = [5,6,7]
for a,b,c in zip(x,y,z):
print(a,b,c)
>>> 1 3 5
2 4 6
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新filter 类.
在函数中设定过滤条件,迭代元素,保留返回值为
True
的元素.
fil = filter(lambda x: x>10,[1,11,2,45,7,6,13])
print(list(fil))
实例:
过滤出1~100中平方根是整数的数
import math
def sqr(x):
return math.sqrt(x) % 1 == 0
fi2=filter(sqr,range(1,101))
print(list(fi2))
'''
def sqr(x):
s=math.sqrt(x) %1== 0
return s
'''