2.python列表

2022-10-15  本文已影响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']
上一篇下一篇

猜你喜欢

热点阅读