美文网首页
2.python列表

2.python列表

作者: 生信百宝箱 | 来源:发表于2022-10-15 19:24 被阅读0次

    2. 列表

    不同于元组和字符串,列表的内容是可变的(mutable)。

    2.1 更新列表

    2.1.1 元素赋值

    ①简单赋值(同R)

    >>> group=[0,1,2,3,4]
    #索引下标为1的元素重新赋值为9
    >>> group[1]=9      
    >>> group
    [0, 9, 2, 3, 4]
    #索引下标为3的元素重新赋值为30
    >>> group[3]=30     
    >>> group
    [0, 9, 2, 30, 4]
    

    ②报错情况(R可以)

    不能为一个不存在元素的位置赋值,若强行赋值,程序会报错。

    >>> group
    [0, 9, 'xiaomeng', 30, 4]
    >>> group[5]='try'
    Traceback (most recent call last):
      File "<pyshell#134>", line 1, in <module>
        group[5]='try'
    IndexError: list assignment index out of range
    

    2.1.2 增加元素

    ①语法格式

    list代表列表,obj代表需要添加到list列表末尾的对象

    list.append(obj)
    

    ②演示

    >>> group
    [0, 9, 'xiaomeng', 30, 4]
    >>> group.append('try')
    >>> group
    [0, 9, 'xiaomeng', 30, 4, 'try']
    

    append()方法操作列表时,返回的列表不是一个新列表,而是直接在原来的列表上做修改,然后将修改过的列表直接返回。

    2.1.3 删除元素(R向量中删除使用负数索引)

    >>> group
    [0, 9, 'xiaomeng', 30, 4, 'try', 'test']
    #使用序列中获取长度的函数
    >>> len(group)        
    7
    #删除最后一个元素,注意索引下标与序列长度的关系
    >>> del group[2:6]
    #查看删除元素后的列表
    >>> group
    [0, 9, 'test']
    >>> len(group)
    3
    

    2.1.4 分片赋值

    ①字符串转化为列表

    list()方法可以直接将字符串转换为列表。

    list(str) 或
    a=list(str)
    

    ②演示1 列表转化

    >>> list('北京将举办2020年的冬奥会')
    ['北', '京', '将', '举', '办', '2', '0', '2', '0', '年', '的', '冬', '奥', '会']
    >>> greeting=list('welcome to beijing')
    >>> greeting
    ['w', 'e', 'l', 'c', 'o', 'm', 'e', ' ', 't', 'o', ' ', 'b', 'e', 'i', 'j', 'i', 'n', 'g']
    

    演示② 分片赋值1(同R)

    可以通过分片赋值直接对列表进行变更

    >>> greeting[11:18]
    ['b', 'e', 'i', 'j', 'i', 'n', 'g']
    >>> greeting[11:18]=list('china')
    >>> greeting
    ['w', 'e', 'l', 'c', 'o', 'm', 'e', ' ', 't', 'o', ' ', 'c', 'h', 'i', 'n', 'a']
    

    演示③ 分片赋值2

    可以使用与原列表不等长的列表将分片进行替换

    >>> greeting=list('hi')
    >>> greeting
    ['h', 'i']
    >>> greeting[1:]=list('ello')
    >>> greeting
    ['h', 'e', 'l', 'l', 'o']
    

    演示③ 分片插入(与R不同,R中此操作为替换)

    >>> group=[0, 9, 'xiaomeng', 30, 4, 'try', 'test']
    >>> group[5:5]=[666,777]
    >>> group
    [0, 9, 'xiaomeng', 30, 4, 666, 777, 'try', 'test']
    

    演示④ 分片删除(R删除用负值索引)

    >>> group
    [0, 9, 'xiaomeng', 30, 4, 777, 'try', 'test']
    >>> group[1:8]=[]
    >>> group
    [0]
    

    2.1.5 嵌套列表

    >>> test=[[1,2],[3,4],[5,6]]
    >>> test1=test[1]
    >>> test1
    [3, 4]
    >>> test1[1]
    4
    

    2.1.6 列表方法

    ①append()

    该方法的功能是在列表的末尾添加新对象。

    >>> test=[1,2,3,4,5,6]
    >>> test.append(7)
    >>> test
    [1, 2, 3, 4, 5, 6, 7]
    

    ②extend()

    extend()方法用于在列表末尾一次性追加另一个列表中的多个值(用新列表扩展原来的列表),也就是列表的扩展。

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

    extend()方法和序列相加的主要区别是:extend()方法修改了被扩展的列表,如这里的a,执行a.extend(b)后,a的值变更了;相加则不会改变初始a,b的值。

    ③index()

    index()方法用于从列表中搜索某个值,返回列表中找到的第一个与给定参数匹配的元素的索引下标位置。

    >>> a=[1,2,3,"hi","hi"]
    >>> a.index("hi")
    3
    

    ④insert()

    insert()方法用于将对象插入列表。

    >>> a=[1,2,3,4,5,6]
    >>> a.insert(2,"hi")
    >>> a
    [1, 2, 'hi', 3, 4, 5, 6]
    

    ⑤sorted()

    该函数可以直接获取列表的副本进行排序

    #数字
    >>> a=[9,2,3,4,1,4,2]
    >>> b=sorted(a)
    >>> b
    [1, 2, 2, 3, 4, 4, 9]
    >>> a
    [9, 2, 3, 4, 1, 4, 2]
    #字符串
    >>> sorted("python")
    ['h', 'n', 'o', 'p', 't', 'y']
    

    ⑥copy()

    copy()方法用于复制列表,不需要传入参数

    >>> num=["a","b","c"]
    >>> copy=num.copy()
    >>> copy
    ['a', 'b', 'c']
    

    ⑦remove()

    remove()方法用于移除列表中某个值的第一个匹配项。

    >>> test=["a","b","c","a"]
    >>> test.remove("a")
    >>> test
    ['b', 'c', 'a']
    

    ⑧pop()

    pop()方法用于移除列表中的一个元素,并且返回该元素的值;在使用pop()方法时,若没有指定需要移除的元素,则默认移除列表中的最后一个元素。

    >>> test=["a","b",1,2,3,"c"]
    >>> test.pop()
    'c'
    >>> test
    ['a', 'b', 1, 2, 3]
    >>> test.pop(3)
    2
    >>> test
    ['a', 'b', 1, 3]
    

    ⑨reverse()

    reverse()方法用于反向列表中的元素,该方法不需要传入参数。

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

    ⑩count()

    count()方法用于统计某个元素在列表中出现的次数。

    >>> test1
    ['a', 'b', 'b', 'c', 'c', 'c']
    >>> test1.count("b")
    2
    >>> test1.count("c")
    3
    

    ⑪sort()

    #默认按照首字母排序
    >>> test=["cat","tree","a","fly111"]
    >>> test.sort()
    >>> test
    ['a', 'cat', 'fly111', 'tree']
    #key指定按照长度排序;reverse反向排序
    >>> test.sort(key=len)
    >>> test
    ['a', 'cat', 'tree', 'fly111']
    >>> test.sort(key=len,reverse=True)
    >>> test
    ['fly111', 'tree', 'cat', 'a']
    

    相关文章

      网友评论

          本文标题:2.python列表

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