標籤:int 串連 數字 刪除元素 數組 字串 oid 包括 乘法
列表可以使用所有適用於序列的標準操作,例如索引、分區、串連和乘法。但列表還有一些屬於自己的操作,如修改列表本身的操作,這些操作包括元素賦值、元素刪除、分區賦值以及下一節要將的列表方法。
1. 列表元素賦值
如果要修改列表中的某一個元素,可以像使用數組一樣對列表中的特定元素賦值,也就是使用一對中括弧指定元素在列表中的索引,然後使用賦值運算子(=)進行賦值。
本例修改了列表s中的前兩個元素值。
s = ["Bill", "Mike", "John"]s[0] = "Mary"s[1] = 20print(s) # 運行結果:[‘Mary‘, 20, ‘John‘]
程式運行結果如所示。
在上面的代碼中,通過列表的元素賦值操作,修改了列表s中的前兩個的元素,第1個元素修改成了“Mary”,第2個元素修改成了20。
在列表元素賦值的操作中,清單索引可以是負數,在這種情況下,會從列表最後一個元素開始算起。例如,s[-1]表示倒數第1個列表元素,s[-2]表示倒數第2個列表元素。不過不管清單索引使用正數還是負數,都不能超過索引範圍,否則會拋出異常。
本例使用超過清單索引範圍的索引,會拋出異常。
s = ["Bill", "Mike", "John"]s[-1] = "Mary" # 修改列表最後一個元素值print(s) # 運行結果:[‘Bill‘, ‘Mike‘, ‘Mary‘] s[3] = "Peter" # 索引3超出了列表s的索引範圍(-3到2),會拋出異常s[-3] = "蜘蛛俠" # 索引-3是列表s的第1個元素,相當於s[0]print(s) # 運行結果:[‘蜘蛛俠‘, ‘Mike‘, ‘Mary‘]s[-4] = "鋼鐵俠" # 索引-4超出了列表s的索引範圍(-3到2),會拋出異常
程式運行結果如所示。
2. 刪除列表元素
從列表中刪除元素也很容易,使用del語句就可以做到。
numbers = [1,2,3,4,5,6,7,8]del numbers[2] # 刪除列表numbers中的第3個元素
3. 分區賦值
分區賦值和分區擷取子列表一樣,也需要使用分區操作,也就是需要指定要操作的列表的範圍。
本例將利用分區賦值將列表中的子列表替換成其他列表。並使用list函數將字串分解成由字元組成的列表,並替換字串中的某一部分。
s = ["hello", "world","yeah"]s[1:] = ["a","b","c"] # 將列表s從第2個元素開始替換成一個新的列表print(s) # 運行結果:[‘hello‘, ‘a‘, ‘b‘, ‘c‘]name = list("Mike") # 使用list函數將“Mike”轉換成由字元組成的列表print(name) # 運行結果:[‘M‘, ‘i‘, ‘k‘, ‘e‘]name[1:] = list("ary") # 利用分區賦值操作將“Mike”替換成了“Mary” print(name) # 運行結果:[‘M‘, ‘a‘, ‘r‘, ‘y‘]
程式運行結果如所示。
上面的代碼使用了分區賦值對原列表進行了賦值操作,我們可以看到,分區賦值是用另一個列表來修改原列表中的子列表。也就是將原列表中的子列表替換成另外一個子列表。而且在賦值時,被替換的子列表和新的子列表可以不等長。例如,["world","yeah"]可以被替換為[‘a‘, ‘b‘, ‘c‘]。
可能有很多讀者會想到,我們可以利用這個特性在列表中插入一個列表,或刪除一些列表元素。
本例將利用分區賦值在列表numbers中插入一個列表,並刪除一些列表元素。
numbers = [1,6,7]# 在列表numbers中插入一個列表,運行numbers[1:1] = [2,3,4,5] print(numbers)numbers[1:4] = []print(numbers)
程式運行結果如所示。
在上面的代碼中,使用分區賦值操作在列表numbers中的1和6之間插入了列表[2,3,4,5]。numbers[1:1]中冒號(:)前面的數字表示要替換的子列表的第1個元素在父列表中的索引,而冒號後面的數字表示子列表下一個元素在父列表中的索引,所以冒號前後兩個數字相等,表示不其他清單中的任何元素,直接在冒號前面的數字表示的索引的位置插入一個新的列表。最後使用分區賦值將第2、3、4個元素值替換成了空列表,所以最後numbers列表的值是[1,5,6,7]。
《Python從菜鳥到高手》已經出版,開始連載了,購買送視頻課程
Python從菜鳥到高手(11):列表的基礎操作