python 迭代算法,python中的迭代法
介绍
本文主要介绍Python中迭代的基础知识和使用方法。
什么是迭代?
在Python中,给定一个列表或元组,我们可以通过for循环遍历列表或元组,这就是我们的迭代。
在Python中,迭代发生在for中。在中,虽然在许多语言(如C和Java)中,迭代列表出现在下标中(如Java代码)。
for(I=0;我
n=列表[I];
}
可以看出Python的for循环比Java的for循环更抽象。
因为Python的for循环不仅适用于list和tuple,还适用于其他可重复的对象。
因此,迭代运算意味着对于一个集合,不管它是有序的还是无序的,你总是可以使用for循环来按顺序检索集合中的每一个元素。
请注意,集合是包含一组元素的数据结构。已经解释如下。
有序集:列表、元组、str、unicode;
无序设置:设置
无序集下的键值对:dict
它是一个迭代动词,指的是一个操作,在Python中是for循环。
通过迭代和下标访问数组的最大区别在于,后者是一种具体的迭代实现方法,而前者只关心迭代结果,不关心在迭代内部是如何实现的。
指数
在Python中,迭代总是检索元素本身,而不是元素的索引。
对于有序集合,元素有索引。在某些情况下,我们确实想在for循环中获取索引。我们做什么呢
使用方法的enumerate()函数。
L=[亚当,丽莎,巴特,保罗]
对于索引,nameinenumerate(L):打印索引,“-”,名称。
0 -亚当
1-丽莎
双板
三杆
enumerate()函数允许您在for循环中绑定索引和元素名称。但是,这不是enumerate()的特殊语法。实际上,enumerate()函数是
[亚当,丽莎,巴特,保罗]
变得相似:
[0,亚当,1,丽莎,2,巴特,3,保罗]]
因此,迭代的每个元素实际上都是元组。
财富计数(l):
Index=t [0]
name=t[1]
打印索引,“-”,名称
如果知道每个元组元素包含两个元素,那么for循环可以进一步缩短为
对于索引,nameinenumerate(L):
打印索引,“-”,名称
不仅代码更简单,而且赋值语句也更少。
可以看到,索引迭代并不是真正的索引访问,而是enumerate()函数自动将每个元素做成一个元组(比如(index,element)),通过迭代同时获得索引和元素本身。
迭代字典的值
可以知道,dict对象本身就是一个可重复的对象。通过在for循环中直接重复dict,每次都可以得到dict的密钥。
如何重复dict对象的值?
Dict对象包含values()方法。这个方法将dict转换成一个包含所有值的列表。这样,dict的所有值都被重复。
d={ 亚当:95,丽莎:85,巴特:59 }
打印d .值(
# [ 85,95,59 ]
对于d.values()中的v:
印刷
# 85
# 95
# 59
仔细阅读Python文档时,除了方法,dict中还有值(itervalues)(方法)。如果使用ITER值)(方法而不是值)(方法
d={ 亚当:95,丽莎:85,巴特:59 }
打印数据项值(
#
对于d.itervalues()中的v:
印刷
# 85
# 95
# 59
两种方法有什么区别?
Values))方法实际上将dict转换成一个包含值的列表。
但是,与ITER值(ITER值)方法相比,生成列表所需的内存更少,因为在迭代过程中,这些值是从dict中依次检索的。
打印itervalues()时返回一个对象。这说明在Python中,for循环的迭代对象可以在任何可迭代对象(比如list、tuple、str、unicode和dict)中工作,但是如何在内部迭代通常是非常重要的。
如果一个对象说它是可重复的,我们直接用for循环重复它。可以看到迭代是一个抽象的数据操作,对被迭代对象内部的数据没有要求。
迭代字典的键和值
知道了如何重复dict的键和值,是否可以在for循环中同时重复键和值?答案是肯定的。
首先,我们来看看dict对象的items))方法返回的值。
d={ 亚当:95,丽莎:85,巴特:59 }
打印项目(
[(丽莎),85),亚当),95),巴特)和59)]
正如您所看到的,items))方法将一个dict对象转换成一个包含tuple的列表。这个重复列表可以检索键和值。
对于键,d.items()中的值:打印关键字 : ,值。
丽莎:85岁
亚当:95
巴特:59
类似的还有values()中的ITER值()。Items))也对应iteritems),iteritems),或者不是把dict转换成list,而是在迭代过程中继续给tuple,所以iteritems))。
标签
以上是Python开发入门——迭代的基本使用细节。关于Python迭代的信息,请关注脚本之家其他相关文章。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。