美文网首页
[python]list(数组)和tuple

[python]list(数组)和tuple

作者: 喵吉呀呀 | 来源:发表于2019-01-11 18:40 被阅读0次

    一、list
    list是一种有序的集合,类似数组。
    1、len()
    获取list的长度

    >>>arr = [1,2,3,4]
    >>>len(arr)
    3
    

    1、获取元素
    索引从0开始

    >>>arr = [1,2,3,4]
    >>>ar[1]
    2
    

    索引也可以从-1开始,表示从最后一个元素开始取

    >>>arr = [1,2,3,4]
    >>>arr[-1]
    4
    

    切片(Slice),从list截取一部分数据
    list[start,stop,step]
    start:(选填),开始位置,索引从0开始,所以0表示第一个元素,不填默认从0开始,为负数时从倒数开始数
    stop:(选填)结束位置,由于索引是从0开始,所以不包括stop,不填默认到最后一位
    step:(选填)步长,隔几位取一次
    如:l[1:5] => 取第2到第5(索引5其实是list中的第6个元素),共4个元素
    stop>list长度时,截取到list最后一个元素

    >>> l = ['Michael', 'Sarah', 'Tracy']
    >>> l[1:3]
    ['Sarah', 'Tracy']
    >>> l[1:5]
    ['Sarah', 'Tracy']
    

    分别取前10和后10:

    >>> L = list(range(100))
    >>> L[:10]
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> L[-10:]
    [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
    

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

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

    所有数,每5个取一个:

    >>> L[::5]
    [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]
    

    什么都不写,只写[:]相当于原样复制一个list:

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

    *字符串也可以切片

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

    4、insert()
    把元素插入到指定的位置,比如索引号为1的位置:

    >>>arr = [1,2,3,4]
    >>>arr.insert(1,5)
    >>>arr 
    [1,5,2,3,4]
    

    5、append()
    追加元素到末尾

    >>>arr = [1,2,3,4]
    >>>arr.append(5)
    >>>arr 
    [1,2,3,4,5]
    

    6、pop(i)
    删除指定位置的元素

    >>>arr = [1,2,3,4]
    >>>arr.pop(1)
    2
    >>>arr 
    [1,3,4]
    

    i为空时,删除最后一个元素

    >>>arr = [1,2,3,4]
    >>>arr.pop()
    4
    >>>arr 
    [1,2,3]
    

    6、替换元素,直接肤质

    >>>arr = [1,2,3,4]
    >>>arr[2] = 5
    >>>arr 
    [1,2,5,4]
    

    二、tuple
    元组。类似list,一旦定义,不可修改。因此不存在append、pop这些方法

    >>>t= (1,2,3,4)
    >>>t[1] 
    2
    

    当初始化tuple时,长度为1时,必须要‘,’,因为括号()既可以表示tuple,又可以表示数学公式中的小括号,产生歧义

    >>> t2=(1,)
    >>> t2
    (1,)
    >>> t2[0]
    1
    >>> t3 = (1)
    >>> t3
    1
    >>> t3[0]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'int' object is not subscriptable
    

    **'可变的'的 tuple

    >>> t = ('a', 'b', ['A', 'B'])
    >>> t[2][0] = 'X'
    >>> t[2][1] = 'Y'
    >>> t
    ('a', 'b', ['X', 'Y'])
    

    tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

    相关文章

      网友评论

          本文标题:[python]list(数组)和tuple

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