zoukankan      html  css  js  c++  java
  • python 切片&迭代


    Python提供了切片(Slice)操作符
    L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
    取前3个元素
    >>> L[0:3]
    ['Michael', 'Sarah', 'Tracy']
    L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2

    也可以从索引1开始,取出2个元素出来:
    >>> L[1:3]
    Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片
    >>> L[-2:]
    ['Bob', 'Jack']
    >>> L[-2:-1]
    ['Bob']
    创建一个0-99的数列:
    >>> L = list(range(100))
    前10个数,每两个取一个:
    >>> L[:10:2]
    [0, 2, 4, 6, 8]

    字符串也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作
    >>> 'ABCDEFG'[:3]
    'ABC'
    >>> 'ABCDEFG'[::2]
    'ACEG'

    迭代
    默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()
    >>> d = {'a': 1, 'b': 2, 'c': 3}
    >>> for key in d:
    ... print(key)
    ...
    a
    c
    b
    字符串也是可迭代对象,因此,也可以作用于for循环:

    >>> for ch in 'ABC':
    ... print(ch)
    ...
    A
    B
    C
    Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:

    >>> for i, value in enumerate(['A', 'B', 'C']):
    ... print(i, value)
    ...
    0 A
    1 B
    2 C
    判断一个对象是可迭代对象呢 :方法是通过collections模块的Iterable类型判断:

    >>> from collections import Iterable
    >>> isinstance('abc', Iterable) # str是否可迭代
    True

    任何可迭代对象都可以作用于for循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用for循环。

    朝闻道
  • 相关阅读:
    poj 2251
    poj 1321
    poj 2777
    poj 3468
    poj 2318
    javascript
    buhui
    swift 构造器
    mac上不了网
    字体
  • 原文地址:https://www.cnblogs.com/wander-clouds/p/8453819.html
Copyright © 2011-2022 走看看