首页 > 编程知识 正文

python可迭代数据类型,python迭代算法

时间:2023-05-05 02:06:07 阅读:143189 作者:179

介绍

本文主要介绍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迭代的资料请关注脚本屋的其他相关文章。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。