Python--列表

作者: VB过得VB | 来源:发表于2017-02-03 22:49 被阅读26次

    列表是可变的,可以改变列表的内容,并且有很多的方法。

    1、list函数--将序列变成列表

    >>> L = list('hello')
    >>> L
    ['h', 'e', 'l', 'l', 'o'] # 字符串变列表
     >>> ''.join(L)
    'hello' # 列表变字符串
    

    2、列表基本操作

    列表可以使用所有适用序列的标准操作。

    2.1、元素赋值

    >>> x = [1,1,1]
    >>> x[1] = 2
    >>> x
    [1, 2, 1]
    

    2.2、分片赋值

    一次给多个元素赋值

    # 与原序列等长
    >>> name = list('Perl')
    >>> name
    ['P', 'e', 'r', 'l']
    >>> name[2:] = list('ar') 
    >>> name
    ['P', 'e', 'a', 'r']
     # 与原序列不等长
    >>> name[1:] = list('ython')
    >>> name
    ['P', 'y', 't', 'h', 'o', 'n']
    # 插入新的元素
    >>> name[3:3]
    []
    >>> name[3:3] = [2,3,4]
    >>> name
    ['p', 'y', 't', 2, 3, 4, 'h', 'o', 'n']
    # 删除元素
    >>> name[3:6] = []
    >>> name
    ['p', 'y', 't', 'h', 'o', 'n']
    

    注:试试1之外的步长和用负数进行赋值

    2.3、删除元素

    >>> name
    ['p', 'y', 't', 'h', 'o', 'n']
    >>> del name[1:4]
    >>> name
    ['p', 'o', 'n']
    # 删除列表
    >>> del name
    >>> name
    Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
    NameError: name 'name' is not defined
    

    3、列表方法

    方法是与对象密切相关的函数,调用形式:对象.方法(参数)

    3.1、append

    append用于在列表末尾追加新的对象

    >>> lst = [1,2,3]
    >>> lst.append(4)
    >>> lst
    [1, 2, 3, 4]
    # 它不是返回一个修改过的新列表,而是直接修改原列表`
    

    3.2、count

    count用于统计某个元素在列表中出现的次数

    >>> lst = [[1,2],1,1,[1,2,[1,2]]]
    >>> lst.count(1)
    2
    >>> lst.count([1,2])
    1
    

    3.3、extend

    extend方法可以在列表的末尾一次性追加另一个列表中的多个值。换句话说可以用新列表扩展元列表

    >>> a = [1,2,3]
    >>> b = [4,5,6]
    >>> a.extend(b[:2])
    >>> a
    [1, 2, 3, 4, 5]
    >>> a.extend(b)
    >>> a
    [1, 2, 3, 4, 5, 4, 5, 6]
    
    >>> a = [1,2,3]
    >>> b = [4,5,6]
    >>> a + b
    [1, 2, 3, 4, 5, 6]
    >>> a
    [1, 2, 3]
    

    注:这个操作看起来和连接操作很像,但extend修改原序列,连接操作(+)返回一个新序列

    3.4、index

    index方法用于从列表中找出某个元素第一个匹配项的索引位置(用元素找索引

    >>> lst = list('helloworld')
    >>> lst
    ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
    >>> lst.index('o')
    4
    

    注:当搜索的元素不在列表中就会引发一个异常

    3.5、insert

    insert方法用于将元素插入到列表中

    >>> numbers = [1,2,3,5,6]
    >>> numbers.insert(3,'four')
    >>> numbers
    [1, 2, 3, 'four', 5, 6]
    

    3.6、pop

    pop方法会移除列表中的一个元素(默认最后一个),并且返回该元素的值

    >>> numbers = [1,2,3,4,5,6]
    >>> numbers.pop()
    6
    >>> numbers
    [1, 2, 3, 4, 5]
    >>> numbers.pop(1)
    2
    >>> numbers
    [1, 3, 4, 5]
    

    注:pop方法是唯一一个既能修改列表又能返回元素值(除None)的列表方法

    3.7、remove

    remove用于移除列表中某个元素的第一个匹配项

    >>> numbers = [1,0,2,0,3,0,4,0,5]
    >>> numbers.remove(0)
    >>> numbers
    [1, 2, 0, 3, 0, 4, 0, 5]
    

    注:remove移除第一次出现的元素,移除不存在的元素会报错,修改列表无返回值,这与pop相反

    3.8、reverse

    reverse方法将列表元素反向存放

    >>> x = [1,2,3]
    >>> x.reverse()
    >>> x
    [3, 2, 1]
    

    注:reverse改变列表无返回值

    3.9、sort

    sort方法对列表进行排序,改变原列表无返回值。

    >>> x = [9,7,3,6,8,1,2]
    >>> x.sort()
    >>> x
    [1, 2, 3, 6, 7, 8, 9]
    

    如何得到一个排序好的新列表?

    # 方法一
    >>> x = [9,7,3,6,8,1,2]
    >>> y = x[:]
    >>> y.sort()
    >>> x
    [9, 7, 3, 6, 8, 1, 2]
    >>> y
    [1, 2, 3, 6, 7, 8, 9]
    
    # 方法二
    >>> x = [9,7,3,6,8,1,2]
    >>> y = sorted(x) # sorted函数可用于任何序列,却总是返回一个列表
    >>> x
    [9, 7, 3, 6, 8, 1, 2]
    >>> y
    [1, 2, 3, 6, 7, 8, 9]
    

    3.10、高级排序

    >>> x = ['sfsf', 'fgvfdg', 'df', 'g']
    >>> x.sort(key = len)
    >>> x
    ['g', 'df', 'sfsf', 'fgvfdg']
    
    >>> x = [1,25,6,2]
    >>> x.sort(reverse = True)
    >>> x
    [25, 6, 2, 1]
    

    相关文章

      网友评论

        本文标题:Python--列表

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