7、迭代

作者: 代码充电宝 | 来源:发表于2019-04-26 09:30 被阅读4次
    (1)迭代
    • 迭代操作就是对于一个集合,无论该集合是有序还是无序
    • 集合是指包含一组元素的数据结构,我们已经介绍的包括:
      1. 有序集合:list,tuple,str和unicode;
      2. 无序集合:set
      3. 无序集合并且具有 key-value 对:dict
    • 迭代与按下标访问数组最大的不同是
      1. 后者是一种具体的迭代实现方式
      2. 前者只关心迭代结果,根本不关心迭代内部是如何实现的
    • 迭代永远是取出元素本身,而非元素的索引
    (2)几种迭代方法
    • 迭代元素自身
    L = ['Adam', 'Lisa', 'Bart']
    T = ('Adam', 'Lisa', 'Bart')
    S = set(['Adam', 'Lisa', 'Bart'])
    D = {
        'Adam': 95,
        'Lisa': 85,
        'Bart': 59
    }
    # 结果都是
    # Adam
    # Lisa
    # Bart
    for item in L:
        print(item)
    for item in T:
        print(item)
    for item in S:
        print(item)
    # dict迭代的是key
    for item in D:
        print(item)
    
    • enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,再迭代,就同时获得了索引和元素本身
    L = ['Adam', 'Lisa', 'Bart']
    T = ('Adam', 'Lisa', 'Bart')
    S = set(['Adam', 'Lisa', 'Bart'])
    D = {
        'Adam': 95,
        'Lisa': 85,
        'Bart': 59
    }
    # 结果都是
    # (0, 'Adam')
    # (1, 'Lisa')
    # (2, 'Bart')
    for item in enumerate(L):
        print(item)
    for item in enumerate(T):
        print(item)
    for item in enumerate(S):
        print(item)
    for item in enumerate(D):
        print(item)
    # 结果都是
    # 0 Adam
    # 1 Lisa
    # 2 Bart
    for index,name in enumerate(L):
        print(index,name)
    for index,name in enumerate(T):
        print(index,name)
    for index,name in enumerate(S):
        print(index,name)
    for index,name in enumerate(D):
        print(index,name)
    
    • str的迭代
    str = 'abc'
    # a
    # b
    # c
    for item in str:
        print(item)
    # (0, 'a')
    # (1, 'b')
    # (2, 'c')
    for item in enumerate(str):
        print(item)
    
    (3)dict的额外迭代方法
    • values():dict转换成一个包含所有value的list
    • keys():dict转换成一个包含所有key的list
    D = {
        'Adam': 95,
        'Lisa': 85,
        'Bart': 59
    }
    # 95
    # 85
    # 59
    for item in D.values():
        print(item)
        
    # Adam
    # Lisa
    # Bart
    for key in D.keys():
        print(key)
    
    • items() :dict对象转换成了包含tuple的list,tuple[0]表示key,tuple[1]表示value
    D = {
        'Adam': 95,
        'Lisa': 85,
        'Bart': 59
    }
    # <class 'tuple'> ('Adam', 95)
    # <class 'tuple'> ('Lisa', 85)
    # <class 'tuple'> ('Bart', 59)
    for item in D.items():
        print(type(item),item)
    # Adam 95
    # Lisa 85
    # Bart 59
    for key,value in D.items():
        print(key,value)
    

    相关文章

      网友评论

        本文标题:7、迭代

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