python学习笔记--NO.7 迭代

一、介绍

迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。

for 用来实现迭代,它的结构是 for … in …,其在迭代时会产生迭代器,实际是将可迭代对象转换成迭代器,再重复调用 next() 方法实现的。

可迭代对象:通常是序列、字典、集合等。

他们的特点就是:
①可以 for 循环: for i in iterable;
②可以按 index 索引的对象,也就是定义了 getitem 方法,比如 list,str;
定义了__iter__ 方法,可以随意返回;
③可以调用 iter(obj) 的对象,并且返回一个iterator。

以上转载于:对python迭代的深入研究

二、判断迭代对象

1. all()函数–判断可迭代对象是否包括假值

除了0、空、False以外的值都属于真值。

包括假值all()返回False,否则为True

语法:all(iterable)

iterable:必须是可迭代对象

如果可迭代对象中的元素个数为0,比如空列表、空字典、空元组等,返回值还是True

set1 = {2,4,6,0}
print(all(set1))
结果:
False

2. any()函数–判断可迭代对象是否全是假值

全为假值返回False,否则为True

语法:any(iterable)

如果可迭代对象中的元素个数为0,比如空列表、空字典、空元组等,返回值是False

三、过滤、查找、排序、操作、反转

1.⭐filter()函数–指定条件过滤

filter()函数把传入的函数一次作用域每个元素,根据返回值True或者False来决定保留或者丢弃该元素

语法:filter(function,iterable)

返回值是一个迭代器对象

def evennumber(num):
    return num % 2 == 0
newlist = filter(evennumber,range(20))
print(list(newlist))
结果:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

2.next()函数–返回迭代器的下一个元素

next()函数以迭代器为参数,每次调用返回迭代器中的下一个元素

语法:next(iterator,default)

default: 可选参数,用来设置在没有下一个元素时返回的值
返回值:迭代器中的下一个元素

3.map()函数–通过函数实现对可迭代对象的操作

map()函数接受一个函数和任意个可迭代对象为参数,返回一个迭代器。该迭代器中所有元素都是函数依次作用于可迭代对象的结果。

语法:map(function,iterable...)

返回值:迭代器

def operatenum(num):
    return num*2
list1 = [1,2,3]
print(list(map(operatenum,list1)))
结果:
[2, 4, 6]

4.sorted()函数–可迭代对象排序

对可迭代对象排序并返回一个冲虚排序的列表

语法:sorted(iterable , key = None , reverse = False)

5.reversed()函数–可迭代对象反转

返回一反转的可迭代对象
语法:reversed(seq)

四、生成、打包

1.iter()函数–生成迭代器

语法:iter(object)
返回值:一个迭代器对象

a = iter('dk')
print(a)
print(next(a))
print(next(a))
结果:
<str_iterator object at 0x0000014FD7FEF808>
d
k

2.zip()函数–将可迭代对象打包成元组

语法:zip(iterable1,iterable2...)

list1 = [1,2,3]
list2 = [8,9,10]
list3 = ['a','b','c']
print(list(zip(list1)))
print(list(zip(list1,list2)))
print(list(zip(list1,list2,list3)))
结果:
[(1,), (2,), (3,)]
[(1, 8), (2, 9), (3, 10)]
[(1, 8, 'a'), (2, 9, 'b'), (3, 10, 'c')]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值