#python入门5#高级特性--迭代

2016-11-29  本文已影响6人  MORESIR

如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)

Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象
list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代:

  >>> d={'a':1, 'b': 2, 'c':3}
  >>> for key in d:
  ...          print(key)
c
b
a

for value in d.values()

如果要同时迭代key 和 value,则:

for k,v in d.items()

字符串对象也是可迭代对象:

  for ch in 'abc':
       print(ch)

a
b
c
判断可迭代对象

通过collections模块的Iterable类型判断:

  >>> from collections import Iterable
  >>> isinstance('abc', Iterable) #str是否可迭代
True
  >>> isinstance([1,2,3], Iterable) #list是否可迭代
True
  >>> isinstance(123, Iterable) #整数是否可迭代
False

如果要对list实现类似java那样的下标循环,可以使用python内置的enumerate函数来把list变成 索引-元素 对, 即:

  >>> for i, value in enumerate(['a', 'b', 'c']):
                print(i, value)

0 a
1 b
2 c

在for循环里,同时引用2个变量,在python里很常见

  >>> for x,y in [(1,1), (2,4), (3,9)]:
        print(x, y)

1 1
2 4
3 9
学习来源于廖雪峰教程
上一篇下一篇

猜你喜欢

热点阅读