标签:
谈谈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中的第一个元素,那我想说我也不会啊!
标签:
原文地址:http://www.cnblogs.com/wangyihao/p/5262665.html