zoukankan      html  css  js  c++  java
  • 【python学习笔记】2.列表和元组

    # 第二章:列表和元组
     
    序列中,每个元素都有个一个序号,序号以0开始,最后一个元素序号为-1,倒数第二个-2
    序列类型包括,列表,元组,字符串,unicode字符串,buffer, xrange
    列表可以修改,元组不可以修改,元组可以作为字典的key,列表不可以
     
    列表中的元素可以是各种类型,各元素通过逗号分隔,写在方括号中
    >>> edward=["edward", 42]
    >>> print edward
    ['edward', 42]
    >>>
    >>> print edward[0]
    edward
    >>> print edward[1]
    42
    >>> print edward[2]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: list index out of range
    >>> print edward[-1]
    42
    >>> print edward[-2]
    edward
    >>> print edward[-3]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IndexError: list index out of range
     
    使用索引访问序列中的一个元素
     
    使用分片访问一定范围内的元素,通过冒号分隔的两个索引来获取分片[begin,end],内容包含begin到end之间的元素,不包含end所在位置的元素,
    如果end大于最大的索引号,则返回包含最末尾的元素为止
    如果end小于begin,返回空分片
    如果end缺失,则返回begin之后剩余所有的元素,包含begin位置
    如果begin缺失,则返回end之前的所有的元素
    如果begin,end都缺失,返回所有元素
     
    >>> numbers=[1,2,3,4,5,6,7,8,9,10]
    >>> numbers[3:6]
    [4, 5, 6]
    >>>
    >>> numbers[7:12]
    [8, 9, 10]
    >>> numbers[7:4]
    []
    >>> numbers[7:]
    [8, 9, 10]
    >>> numbers[:3]
    [1, 2, 3]
     
    >>> numbers[:]
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    >>>
     
    分片的步长[being:end:step],step表示遍历元素使用的步长,即每隔step个元素,step默认为1,
    >>> numbers[0:10:2]
    [1, 3, 5, 7, 9]
    step不可以为0,可以为负,表示从右到左提取元素
    >>> numbers[8:3:-1]
    [9, 8, 7, 6, 5]
    >>>
     
    序列相加:使用加号,相同类型的序列才可以相加
    >>> c=[1,2,3]
    >>> d=["a", "b", "c"]
    >>> c+d
    [1, 2, 3, 'a', 'b', 'c']
    >>> e="helloworld"
    >>> c+e
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: can only concatenate list (not "str") to list
    >>>
     
     
    序列乘法:数字x可以序列,表示原来的序列重复x次
    >>> "python"*3
    'pythonpythonpython'
    >>>
     
    None:表示空值,但是占有一个元素的位置
    >>> []
    []
    >>> [None]
    [None]
    >>>
     
    查找:in
    >>> 1 in numbers
    True
    >>> 122 in numbers
    False
    >>>
     
    长度:最小最大值
    >>> len(numbers)
    10
    >>> max(numbers)
    10
    >>> min(numbers)
    1
    >>>
     
    list:将字符串转为序列
    >>> list("helloworld")
    ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd’]
     
     
    修改一元素
    >>> l[4:]=list("cn")
    >>> l
    ['h', 'E', 'l', 'l', 'c', 'n']
    >>>
     
    删除元素:del
    >>> del l[1]
    >>> l
    ['h', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
    >>>
     
    修改多个元素
    >>> l[4:]=list("cn")
    >>> l
    ['h', 'l', 'l', 'o', 'c', 'n']
    >>>
     
    插入元素
    >>> l
    ['h', 'l', 'l', 'o', 'c', 'n']
    >>> l[1:1]="e"
    >>> l
    ['h', 'e', 'l', 'l', 'o', 'c', 'n']
    >>>
    >>> l[5:5]=", world"
    >>> l
    ['h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', 'c', 'n']
    >>>
     
    删除多个元素
    >>> l[-2:]=[]
    >>> l
    ['h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd']
    >>>
     
    >>> del l[-5:]
    >>> l
    ['h', 'e', 'l', 'l', 'o', ',', ' ']
    >>>
     
     
    列表的常用方法
     
    apend:追加新元素
    >>> lst
    [1, 2, 3]
    >>> lst.append(4)
    >>> lst
    [1, 2, 3, 4]
     
     
    count:统计元素出现的次数
    >>> lst.count(3)
    1
    >>>
     
    extend:追加一个列表
    >>> lst
    [1, 2, 3, 4]
    >>> a
    [5, 6, 7]
    >>> lst.extend(a)
    >>> lst
    [1, 2, 3, 4, 5, 6, 7]
     
    index:查找第一个次出现的位置
    >>> lst.index(3)
    2
     
    insert:插入元素
    pop:移除一个元素(默认是最后一个),并且返回该元素的值
    >>> lst.pop()
    7
     
    remove:移除第一个匹配元素,改变列表,无返回值
    >>> lst.remove(2)
    >>> lst
    [1, 3, 4, 5, 6]
    >>>
     
    reverse:反转列表,改变列表,无返回值
    >>> lst.reverse()
    >>> lst
    [6, 5, 4, 3, 1]
    >>>
     
    sort:排序,改变列表,无返回值
    >>> lst.sort()
    >>> lst
    [1, 3, 4, 5, 6]
    >>>
    sort(key=cmp,reverse=False)的参数:key比较函数,reverse反向排序
     
     
    —————————————————————
    ## 元组:不可改变的序列
    以逗号分隔的包含在圆括号内的值,称为元组,圆括号可以省略
    >>> a=1,2,3,4,
    >>> a
    (1, 2, 3, 4)
    >>>
     
    包含一个元素的元组,需要在元素后添加逗号
    >>> a=1,
    >>> a
    (1,)
    >>> a=(1,)
    >>> a
    (1,)
     
    >>> 3*(40+2,)
    (42, 42, 42)
    >>>
     
    tuple:将列转为元组
    >>> l
    [1, 2, 3, 4]
    >>> tuple(l)
    (1, 2, 3, 4)
    >>>
     
  • 相关阅读:
    P2533 [AHOI2012]信号塔
    P1452 Beauty Contest
    P3194 [HNOI2008]水平可见直线
    P2924 [USACO08DEC]大栅栏Largest Fence
    P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows
    P4208 [JSOI2008]最小生成树计数
    P4280 [AHOI2008]逆序对
    P3199 [HNOI2009]最小圈
    P3343 [ZJOI2015]地震后的幻想乡
    剪刀,石头,布,小游戏脚本
  • 原文地址:https://www.cnblogs.com/vc60er/p/7226855.html
Copyright © 2011-2022 走看看