介绍
本文主要介绍Python中迭代的基本知识和使用
什么是迭代
在Python中,给定一个list或tuple,我们可以通过for循环遍历这个list或tuple,该遍历是我们的迭代。
在Python中,迭代发生在for . in中,而在许多语言(如c和Java )中,迭代列表发生在下标(如Java代码)中。
for(I=0; I
n=list[i];
}
可以看出Python的for循环的抽象度比Java的for循环高。
因为Python的for循环不仅适用于list和tuple,还适用于其他可重复的对象。
因此,迭代操作是指对于集合,无论集合是有序的还是无序的,都可以使用for循环始终按顺序检索集合的每个元素。
请注意,集合是包含一组元素的数据结构。 已经说明的如下。
有序集合: list、tuple、str、unicode;
无序集合: set
无序集合下key-value对: dict
迭代是动词,指操作,在Python中是for循环。
通过迭代和下标访问数组的最大区别在于,后者是具体的迭代实现方法,而前者只在意迭代结果,不在乎迭代内部如何实现。
索引
在Python中,迭代总是检索元素本身,而不是元素的索引。
对于有序集合,元素确实有索引。 在某些情况下,我们确实想在for循环中获得索引,该怎么办?
方法使用enumerate ()函数。
L=['Adam ',' Lisa ',' Bart ',' Paul']
for index,nameinenumerate(L ) :
. print index,'-',name
.
0 - Adam
1-丽莎
2 -板
3-杆
enumerate ()函数允许在for循环中同时绑定索引index和元素name。 但是,这不是enumerate ()的特殊语法。 实际上,enumerate ()函数是
['Adam ',' Lisa ',' Bart ',' Paul']
变得相似了:
[0,' Adam ',1,' Lisa ',2,' Bart ',3,' Paul']]
因此,迭代的每个元素实际上都为tuple。
财富枚举(l ) :
索引=t [0]
name=t[1]
打印索引,'-',name
如果知道每个tuple元素包含两个元素,则for循环可以进一步缩短为
for index,nameinenumerate(L ) :
打印索引,'-',name
这样不仅代码更简单,而且赋值语句也更少。
可以看到,索引迭代也不是真的按索引访问,而是enumerate () )函数自动使每个元素成为tuple (如(index,element ) ),并通过迭代同时获得索引和元素本身
迭代dict的值
可知dict对象本身是可重复的对象,通过在for循环中直接重复dict,可以每次得到dict的key。
如何重复dict对象的值?
dict对象包含values ()方法。 此方法将dict转换为包含所有value的list。 这样,重复dict的所有值。
d={ 'Adam': 95,' Lisa': 85,' Bart': 59 }
print d.values (
# [ 85,95,59 ]
for v in d.values () :
打印v
# 85
# 95
# 59
仔细阅读Python文档时,dict中除了方法外还有values (itervalues ) (方法),如果使用ITER values ) (方法代替values ) (方法
d={ 'Adam': 95,' Lisa': 85,' Bart': 59 }
print d.itervalues (
#
for v in d.itervalues () :
打印v
# 85
# 95
# 59
这两种方法有什么不同呢?
values ) )方法实际上将dict转换为包含value的list。
但是,与ITER values (ITER values ) (方法为values ) )方法相比,生成list所需的内存更少,因为在迭代过程中会依次从dict中检索value。
打印itervalues ()时会返回对象。 这表明在Python中,for循环工作的迭代对象在任何可迭代对象(如list、tuple、str、unicode和dict )中都能工作,但在内部如何进行迭代通常很在意
如果一个对象说自己是可重复的,我们直接用for循环来重复。 您可以看到迭代是抽象的数据操作,对迭代对象内部的数据没有任何要求。
迭代dict的key和value
因为知道了如何重复dict的key和值,所以可以在for循环中同时重复key和值吗? 答案是肯定的。
首先,让我们看看dict对象的items ) )方法返回的值。
d={ 'Adam': 95,' Lisa': 85,' Bart': 59 }
print d.items (
[(Lisa )、85 )、)、Adam )、95 )、)、Bart )和59 ) ]
如您所见,items ) )方法将dict对象转换为包含tuple的list。 重复此列表可以同时检索key和value。
for key,value in d.items () :
. print key,' : ',value
.
Lisa : 85
Adam : 95
Bart : 59
类似于values ()中有itervalues () )。 items ) )也对应的iteritems )、iteritems ) ),或者不将dict变换为list,而是在迭代过程中继续给出tuple,因此iteritems ) )。
结语
以上是Python开发入门——迭代的基本使用细节,有关Python迭代的资料请关注脚本屋的其他相关文章。