python中的迭代

#迭代Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。

#list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代:
d = {‘a‘:1, ‘b‘:2, ‘c‘:3}
for key in d:
    print(key)

#因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。
#默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()。
for value in d.values():
    print(value)

for k, v in d.items():
    print(k, v)

#由于字符串也是可迭代对象,因此,也可以作用于for循环:
for ch in ‘ABC‘:
    print(ch)
#所以,当我们使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。
#那么,如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:
#判断一个对象是否是迭代对象
from collections import Iterable
t = isinstance (‘abc‘,  Iterable)#str是否可迭代
print(t)
t = isinstance ([1, 2, 3], Iterable)#list是否可迭代
print(t)
t = isinstance(123, Iterable)#整数是否可迭代
print(t)

#如果要对list实现类似Java那样的下标循环怎么办?Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:
for i, value in enumerate ([‘A‘, ‘B‘, ‘C‘]):
    print(i, value)
#0 A
#1 B
#2 C
print(‘--------------------------------‘)
#上面的for循环里,同时引用了两个变量,在Python里是很常见的,比如下面的代码:
for x, y in [(1, 1), (2, 4), (3, 9)]:
    print(x, y)
时间: 2024-08-19 13:47:36

python中的迭代的相关文章

Python学习-40.Python中的迭代

在上一篇中,我们使用了生成器来创建了一个可遍历的对象.在其中,我们使用了yield关键字. Python我也正在学习中,因此对yield的本质我并不熟悉,但是,在C#中,yield关键字则是语法糖,其内部维护着一个迭代状态(对于C#里的Array,这是当前遍历的元素下标). 那么,在Python中,是否也是一种语法糖了?首先,我们知道,生成器产生的是一个对象,并且这个对象能够被遍历,参考C#,在C#中可foreach的对象都有GetEnumerator方法.那么,Python中很有可以也是具备某

python中的迭代、生成器等等

本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)(Iteration的中文意思就是:反复.重复.迭代等).而这些for循环所遍历的对象(list or tuple 等)成为可迭代对象(Iterable). 也就是说"迭代"就是一个动作或者过程,可以把list或tup

python中的迭代与循环

常用的循环结构是用于迭代多个项的for语句,循环是python最重要的功能之一,最常见的迭代只是循环一个序列(字符串,列表,或者元组)的所有成员 1,迭代列表: for n in [1,2,3,4,5,6,7,8,9]:  print("number:%d  value: %d" %(n,2*n)) 输出结果: number:1  value: 2number:2  value: 4number:3  value: 6number:4  value: 8number:5  value:

python中的迭代解析有点map(function,list)函数的意思

迭代解析,就是利用迭代协议将列表(当然不仅仅是列表,也可以是文件对象或者词典等等,这里用列表a来处理)中的item取出来(for x in a)在表达式x+10中进行同样的处理: 而map函数也是将列表中的item取出来进行function的处理,当然这个不是利用迭代协议,而是利用的map的思想.MapReduce思想,很厉害的. 列表解析有个过滤用的if还是很棒的.还有两个for循环也是很不错的

Python的索引迭代(转载http://www.imooc.com/learn/177)

Python中,迭代永远是取出元素本身,而非元素的索引. 对于有序集合,元素确实是有索引的.有的时候,我们确实想在 for 循环中拿到索引,怎么办? 方法是使用 enumerate() 函数: >>> L = ['Adam', 'Lisa', 'Bart', 'Paul'] >>> for index, name in enumerate(L): ... print index, '-', name ... 0 - Adam 1 - Lisa 2 - Bart 3 -

python学习之”迭代从入门到精通“

在开发的过程中,假如给你一个list或者tuple,我们可以通过for循环来遍历这个list或者tuple,这种遍历我们成为迭代(Iteration).在Python中,迭代是通过for ... in来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代码 : 1 for(int x = 0;x<n;x++) 2 { 3 a[i] = i; 4 } 可以看出,Python的for循环抽象程度要高于Java的for循环,因为Python的for循环不仅可以用在list

python之 可迭代 迭代器 生成器

0. 1.总结 (1) iterable 可迭代(对象) 能力属性 指一个对象能够一次返回它的一个成员,for i in a_list 而不需要通过下标完成迭代. 例子包括所有序列类型(list, str, tuple), 以及 dict, file, 还包括定义了 __iter__() 或 __getitem__() 方法的类实例. iterator 迭代器 具体实现 代表数据流的对象.重复调用迭代器的 next() (python3为 __next__()) 方法将依次返回流中的项.当没有更

Python enumerate索引迭代

索引迭代Python中,迭代永远是取出元素本身,而非元素的索引.对于有序集合,元素确实是有索引的.有的时候,我们确实想在 for 循环中拿到索引,怎么办?方法是使用 enumerate() 函数:>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']>>> for index, name in enumerate(L):... print index, '-', name... 0 - Adam1 - Lisa2 - Bart3 - Paul使

Python中的args和kwargs

有时,你会看到python中定义函数的时候带有两个奇怪的参数:*args.**kwargs.如果你曾经想知道它们是干什么的,或者想知道你的IDE为什么在main()函数中定义它们,那么本文可以帮助到你.本文会告诉你在python中如何使用args和kwargs,来增加函数的灵活性. 1.传递多个参数给函数*args和*kwargs允许你给一个参数传递多个参数或者keyword参数.考虑下面的例子.这是一个简单的函数,需要获取两个参数并返回它们之和: def my_sum(a, b): retur