Python基础 - 迭代

本文介绍了Python中可迭代对象的基本概念,包括sequence(序列)和dict(字典)等类型的详细解释,并提供了实例说明如何使用这些类型的对象。

前言

在pythone中经常可以看到iterable这样的描述。
直译为迭代。

这是在C中没有的概念。

iterable(可迭代)

支持每次返回自己所包含的一个成员的对象就是可迭代对象。

iterable 包含:sequence types (如: list,str, tuple)以及一些 non-sequence types (如: dict,file),以及用户自定义的一些包含了__iter__() 或__getitem__() 方法的类,可以描述为下面的一个关系图:



sequence

顾名思义,就是序列。
python帮助文档中对sequence的定义是:
一种可以使用整数序号,通过方法 __getitem__() 来方便的访问每一个元素,且定义了方法 len() 来获取序列长度的可迭代对象。

在python中已经内建了几种序列:
list  列表,如: [1,2,3,4,5]  它类似于C语言中的变量数组。
str 字串,如:'abcdefg'  类似于C语言中的字符串常量
tuple 元组,如:(1,2,3,4,5) 类似于C语言中的常量数组
unicode unicode串,如:u'abcdefg' 类似于str

dict

字典类型,python帮助文档中对dict的定义是:
一种可以将任意对象映射为可计算hash值的对象的类型。
dict是一个数据集合,每一条数据由键和值组成,即: key+value
其目的就是将任意对象value映射为key,其中key必须是可以计算hash值(hashable)的对象
python内建的所有Immutable对象都是hashable对象,所谓Immutable可以理解为常量。
如:list就不是hashable的,而tuple则是hashable的。
dict将hashable的对象与其他任意对象形成映射关系,通过hashable的对象(也就是key)可以方便的查到与其有映射关系的对象,就和查字典类似。
一个dict元素是由 key: value 这样的内容组成的。
>>> a = {1:'kate',2:'tom',3:'jim'}
>>> a[1]
'kate'


好的,我会尽力回答你的问题。 首先,让我们来谈谈 Python 中的异常处理。在 Python 中,异常是程序在运行时遇到的错误或问题,它会导致程序停止运行并抛出一个异常。为了避免这种情况,我们可以使用 try/except 块来捕获并处理异常。例如: ``` try: # some code that might raise an exception except SomeException: # handle the exception ``` 其中,SomeException 是你想要捕获的异常类型。当代码运行到 try 块中的代码时,如果出现了 SomeException 异常,那么 except 块中的代码就会被执行。 接下来,让我们来谈谈 Python 中的对象。在 Python 中,一切都是对象,包括数字、字符串、函数等等。对象有一个类型,它定义了对象可以执行的操作。例如,数字类型可以执行加、减、乘等操作,字符串类型可以执行拼接、切片等操作。你也可以创建自己的对象,并定义它们的类型和操作。 最后,让我们来谈谈 Python 中的迭代器。迭代器是一种对象,它可以让你逐个访问一个序列中的元素。Python 中的迭代器是通过 __iter__ 和 __next__ 方法实现的。__iter__ 方法返回一个迭代器对象,__next__ 方法返回序列中的下一个元素。例如: ``` class MyIterator: def __init__(self, data): self.data = data self.index = 0 def __iter__(self): return self def __next__(self): if self.index >= len(self.data): raise StopIteration result = self.data[self.index] self.index += 1 return result my_iter = MyIterator([1, 2, 3]) for item in my_iter: print(item) ``` 在上面的例子中,我们创建了一个名为 MyIterator 的迭代器对象。它有一个 data 属性,表示要迭代的序列,以及一个 index 属性,表示当前迭代的位置。__iter__ 方法返回 self,表示它本身就是一个迭代器对象。__next__ 方法返回序列中的下一个元素,并将 index 属性加 1。当迭代器遍历到序列末尾时,会抛出 StopIteration 异常,表示迭代结束。 希望这些信息能够对你有所帮助!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值