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向量中刪除使用負數(shù)索引)
>>> group
[0, 9, 'xiaomeng', 30, 4, 'try', 'test']
#使用序列中獲取長度的函數(shù)
>>> 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()方法和序列相加的主要區(qū)別是:extend()方法修改了被擴展的列表贰镣,如這里的a呜象,執(zhí)行a.extend(b)后,a的值變更了碑隆;相加則不會改變初始a,b的值恭陡。
③index()
index()方法用于從列表中搜索某個值,返回列表中找到的第一個與給定參數(shù)匹配的元素的索引下標位置上煤。
>>> 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()
該函數(shù)可以直接獲取列表的副本進行排序
#數(shù)字
>>> 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()方法用于復制列表,不需要傳入?yún)?shù)
>>> 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()方法用于反向列表中的元素懦砂,該方法不需要傳入?yún)?shù)蜒犯。
>>> test=[9,2,1,3]
>>> test.reverse()
>>> test
[3, 1, 2, 9]
⑩count()
count()方法用于統(tǒng)計某個元素在列表中出現(xiàn)的次數(shù)。
>>> 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']