• Python 迭代(iteration)



    对一组数据进行遍历访问称为迭代(iteration)。
    迭代是Python高级特性之一,而且Python的迭代比其他语言更为简便。但是请注意,迭代操作和对迭代器进行操作是不一样的,迭代器后面的博文会讲到。

    //Java示例:
    for(int i = 0; i < array.length(); i++) {
        system.out.println(array[i]);
    }

    而在之前的博客中,想必你已经看到过这样的写法:

    for i in list:
        print(i)


    Python的for循环要比语言更为抽象,也因此更为简便。在Python中,只要是可迭代对象,都可以进行迭代操作。
    可以使用类iterable来判断一个对象是不是可跌倒对象:

    >>> from collections import Iterable
    >>> isinstance('abc', Iterable) # str是否可迭代
    True
    >>> isinstance([1,2,3], Iterable) # list是否可迭代
    True
    >>> isinstance((1,2,3), Iterable)  #tuple是否可以迭代
    True
    >>> isinstance({'k1':'a', 'k2':'b'}, Iterable) #dict是否可以迭代
    True
    >>> isinstance({'a', 'b'}, Iterable) #set是否可以迭代
    True
    >>>
    #说明迭代和索引无关
    #它们都可以使用for i in x: print(x)来迭代

    对dict(字典)的迭代:

    >>> for i in dict:
    ...     print(i)
    ...
    k1
    k2
    k3
    #说明默认对key进行迭代
    >>>
    #迭代value的写法
    >>>for v in d.value():
    ...     print(v)
    ...
    a
    b
    c
    #value()方法将dict的value转换成了一个list以进行迭代
    #如果想省略点这部分内存 还可以使用itervalues()方法 每次迭代只取出value
    
    #Python提供了item()方法来同时迭代key和value
    >>> for k,v in dict.items():
    ...     print(k,v)
    ...
    k1 a
    k2 b
    k3 c
    >>> print(dict.items())
    dict_items([('k1', 'a'), ('k2', 'b'), ('k3', 'c')])
    >>>
    #items()方法则把每一个key-value对转换成了一个tuple,所有的tuple放在一个list中

    对索引的迭代


    Python的迭代默认都是对元素本身,而非元素的索引(如果有的话)。
    如果我们需要对索引进行迭代,可以使用enumerate()函数

    >>> for index,value in enumerate(l):
    ...     print(index,value)
    ...
    0 a
    1 b
    2 c
    3 d
    4 e
    >>>
    #enumerate()方法则把每一个index-value对转换成了一个tuple,所有的tuple放在一个list中

    补充资料:
    https://www.cnblogs.com/superxuezhazha/p/5712253.html

  • 相关阅读:
    Number Sequence ----HDOJ 1711
    B. Berland Bingo
    迷宫城堡--HDOJ 1269(Tarjan)
    迷宫城堡--HDOJ 1269
    前向星,链式前向星
    linux下建立无线wifi------简单实用!
    leetcode187- Repeated DNA Sequences- medium
    leetcode173- Binary Search Tree Iterator- medium
    leetcode170- Two Sum III
    leetcode167- Two Sum II
  • 原文地址:https://www.cnblogs.com/wanghongze95/p/13842622.html
Copyright © 2020-2023  润新知