码迷,mamicode.com
首页 > 编程语言 > 详细

谈谈python中的遍历

时间:2016-03-10 17:21:21      阅读:452      评论:0      收藏:0      [点我收藏+]

标签:

谈谈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中的第一个元素,那我想说我也不会啊!

谈谈python中的遍历

标签:

原文地址:http://www.cnblogs.com/wangyihao/p/5262665.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!