【4-1】高级特性——切片和迭代

    xiaoxiao2021-03-25  74

    一 切片

    1.定义

    Python提供了切片(Slice)操作符,可以取一个list或tuple的部分元素。

    >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

    取前三个元素:

    >>> L[0:3] ['Michael', 'Sarah', 'Tracy']

    L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。

    2.如果第一个索引是0,还可以省略:

    >>> L[:3] ['Michael', 'Sarah', 'Tracy']

    3.也可以从索引1开始,取出2个元素出来:

    >>> L[1:3] ['Sarah', 'Tracy']

    4.倒数切片,倒数第一个元素的索引是-1:

    >>> L[-2:] ['Bob', 'Jack'] >>> L[-2:-1] ['Bob']

    5.还可以间隔取数:

    >>> L = range(100) >>> L [0, 1, 2, 3, ..., 99]

    前10个数,每两个取一个:

    >>> L[:10:2] [0, 2, 4, 6, 8]

    6.只写[:]就可以原样复制一个list:

    >>> L[:] [0, 1, 2, 3, ..., 99]

    7.tuple切片操作

    tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple:

    >>> (0, 1, 2, 3, 4, 5)[:3] (0, 1, 2)

    8.字符串切片操作

    字符串'xxx'或Unicode字符串u'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:

    >>> 'ABCDEFG'[:3] 'ABC' >>> 'ABCDEFG'[::2] 'ACEG'

    二 迭代

    1.判断一个对象是否可迭代

    >>> from collections import Iterable >>> isinstance('abc', Iterable) True >>> isinstance([1,2,3],Iterable) True >>> isinstance(123,Iterable) False

    2.对list实现下标循环

    Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:

    >>> for i, value in enumerate(['A','B','C']): print i,value 0 A 1 B 2 C

    3.for循环中可以同时使用两个变量

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

    转自http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868196435255fcca20a1630446ea2dd434a7176e152000

    转载请注明原文地址: https://ju.6miu.com/read-32316.html

    最新回复(0)