python 复习之列表 list

    xiaoxiao2022-07-04  138

    列表定义:

        1.列表中由一系列特定元素组成,元素与元素之间可能没有任何关联关系,但他们之间有先后顺序关系。

        2.列表是一种序列

        3.列表可以改变存储的各个元素

        4.列表是一种容器

    列表的构造函数:

        list() 生成一个空列表,等同于[]

        list(iterable) 用可迭代对象初始一个列表

    列表的运算:

    算术运算符:

    + += * *=

    + 拼接列表

    >>> list2 = [4,5,6] >>> list1 + list2 [1, 2, 3, 4, 5, 6]

    += 原列表与右侧列表拼接后变量绑定新列表

    >>> list1 += list2 >>> list1 [1, 2, 3, 4, 5, 6]

    * 生成重复的列表

    >>> list1 *3 [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6] >>> 3* list1 [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]

    *= y用原列表生成重复的列表,用变量绑定新生成的列表

    >>> list1 *= 2 >>> list1 [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]

    列表的in / not in 运算符:

        判断一个值是否存在列表中,如果存在则返回True,否则返回False

    >>> l = ['1213', 'LSK', 'Lsk', ''] >>> 'lsk' in l False >>> 'Lsk' in l True

    列表的索引:

    语法:

        列表[整数表达式]

    例:

    >>> l = ['1213', 'LSK', 'Lsk', ''] >>> l[2] 'Lsk' >>> l[2:] ['Lsk', ''] >>> l[::-1] ['', 'Lsk', 'LSK', '1213']

    列表是可变的序列,可以通过索引赋值来改变列表元素:

    >>> l[1] = 'haha' >>> l ['1213', 'haha', 'Lsk', '']

    常用的序列函数:

        len(leq) # 返回序列长度

        max(seq) # 返回序列的最大值元素

        min(seq) # 返回序列的最小值元素

        sum(seq) # 返回序列中所有元素的和

        any(seq) # 真值测试,如果序列中其中一个值为True则返回True,否则返回False

        all(seq) # 真值测试,如果序列中所有值为True则返回True,否则返回False

    例:

    >>> l = [1,2,''] >>> any(l) True >>> all(l) False

    del语句:

    作用:

        删除变量

        删除列表中的元素

    删除单个元素:

        del 列表[整数索引]

    用切片删除单个或多个元素

        del 列表[::]

    例:

    >>> l [1, 2, ''] >>> del l >>> l Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'l' is not defined >>> l = [1, 2, 3, 4, 5] >>> del l[1] >>> l [1, 3, 4, 5] >>> del l[0:2] >>> l [4, 5]

    常用的列表方法:

    L.index(value[, begin[, end]]) #返回对应元素的下标,begin为开始索引,end为结束索引

    >>> l = list(range(1,10,2)) >>> l.index(3) 1 >>> l.index(3,2,4) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: 3 is not in list

    L.insert(index, obj) # 将某个元素插入到列表中的指定位置

    >>> l.insert(0,'lsk') >>> l ['lsk', 1, 3, 5, 7, 9]

    L.count(x) # 返回列表中元素的个数

    >>> l.count(1) 1

    L.remove(x) # 从列表中删除第一次出现在列表中的值

    >>> l ['lsk', 1, 3, 5, 7, 9] >>> l.remove(3) >>> l ['lsk', 1, 5, 7, 9]

    L.copy() # 复制此列表(只复制一层 ,不会复制深层对象),等同于l2 = l1[:],浅拷贝

    >>> l2 = l.copy() >>> l2 is l False >>> l2 == l True

    L.append(x) # 在列表中追加单个元素

    >>> l ['lsk', 1, 5, 7, 9] >>> l.append('haha') >>> l ['lsk', 1, 5, 7, 9, 'haha']

    L.extend(lst) # 向列表追加另一个列表

    >>> l ['lsk', 1, 5, 7, 9, 'haha'] >>> l.extend([1,2,3]) >>> l ['lsk', 1, 5, 7, 9, 'haha', 1, 2, 3]

    L.clear() 清空列表,等同于del l[:]

    >>> l.clear() >>> l []

    L.sort(reverse=False) # 将列表的顺序按值的从小到大的顺序进行排列

    >>> l = [5, 3, 1, 7, 2, 4, 9, 6] >>> l.sort() >>> l [1, 2, 3, 4, 5, 6, 7, 9]

    L.reverse() # 列表反转

    >>> l.reverse() >>> l [9, 7, 6, 5, 4, 3, 2, 1]

    L.pop([index]) # 删除索引对应的元素,如果不加索引,默认删除最后一个元素,同时返回移除元素。

    >>> l [9, 7, 6, 5, 4, 3, 2, 1] >>> l.pop(-1) 1 >>> l [9, 7, 6, 5, 4, 3, 2]

    列表推导式:

        列表推导式是用可迭代对象依次生成列表内元素的方式。

        列表推导式是表达式

    语法:

        [表达式 for 变量 in 可迭代对象]

        [表达式 for 变量 in 可迭代对象 if 条件]

    说明:

        1.先从可迭代对象取一个值,用变量绑定。

        2.调用表达式,把当前的表达式结果追加到列表中

        3.重复上述步骤,直到可迭代对象不再提供数据为止

        4.for in 表达式的if子句可以省略,省略后将对所有生成的对象进行处理

        5.如果if条件语句的真值测试为False,则可迭代对象生成的数据将被丢弃

    例:

    # 生成一个1~9平方的列表 >>> [x**2 for x in range(1,10)] [1, 4, 9, 16, 25, 36, 49, 64, 81] # 生成奇数列表 >>> [x for x in range(20) if x % 2 == 1] [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] >>> [x for x in range(1, 20, 2)] [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

    列表推导式嵌套:

    语法:

        [表达式1

            for 变量1 in 可迭代对象1

                for 变量2 in 可迭代对象2(if 真值表达式2)

        ]

    例:

    >>> s1 = 'lsk' >>> s2 = 'LSK' >>> [y+x for x in s1 for y in s2] ['Ll', 'Sl', 'Kl', 'Ls', 'Ss', 'Ks', 'Lk', 'Sk', 'Kk'] 用列表推导式生成:[[1, 2, 3], [4, 5, 6], [7, 8, 9]] >>> [[x, x+1, x+2] for x in range(1, 8, 3)] [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

    字符串文本解析方法:

        S.split(sep=None) # 用sep字符将字符串分隔,返回关于字符串的列表

        S.join(iterable) # 将一个可迭代对象用字符S进行拼接,生成新的字符串

    例:

    >>> s = 'lsk,LSK,Lsk' >>> s.split(',') ['lsk', 'LSK', 'Lsk'] >>> l = ['lsk', 'Lsk', 'LSK'] >>> s = '--->'.join(l) >>> s 'lsk--->Lsk--->LSK'

     

    最新回复(0)