美文网首页
#python入门5#高级特性--迭代

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

作者: MORESIR | 来源:发表于2016-11-29 10:55 被阅读6次

    如果给定一个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
    
    • 因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样
      默认情况下,ditc迭代的是key,如果要迭代value,则:

    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
    
    学习来源于廖雪峰教程

    相关文章

      网友评论

          本文标题:#python入门5#高级特性--迭代

          本文链接:https://www.haomeiwen.com/subject/jfyapttx.html