您的位置:首页 > 编程语言 > Python开发

谈谈python中的遍历

2016-03-10 17:13 471 查看
谈谈python中的遍历
python中也有像java中的for...each...。在python中是for...in... 其实感觉差不多,不过python的规则更灵活一点,
只要是可以进行迭代的对象都能使用for...in...。那么问题来了,什么是可迭代的对象呢?可以使用collections模块的Iterable来判断。

from collections import Iterable
flag = isinstance('adc',Iterable)
print(flag)
flag = isinstance(123,Iterable)
print(flag)


list的迭代就不说了。dict也可以迭代大家没想到吧,看例子

d = {'name':'wang','age':20}
for key in d:
print(key)


output:
name
age
这是迭代key的,当然也可以迭代value的,key和value同时迭代也是可以的,不过in后面的需要改一下

d = {'name':'wang','age':20}
for k,v in d.items():#迭代value时是d.values
print(k,v)


最后一个小问题,如果要对list实现类似Java那样的下标循环怎么办?
Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身。

list = [1,2,3,4]
for i,n in enumerate(list):
print(i,n)


output:
0 1
1 2
2 3
3 4
还有个有趣的现象

list = [(1,2),(3,4),(5,6)]
for x,y in list:
print(x,y)

output:
1,2
3,4
5,6

for x in list:
print(x)

output:
(1,2)
(3,4)
(5,6)


python是不是很智能,不过也很容易有歧义。你要问我怎么获取每个tuple中的第一个元素,那我想说我也不会啊!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: