列表
列表是Python中基礎數據類型之一,其他語言中也有類似列表的數據類型,例如js中叫數組,它是以[]括起來的,每個元素以逗號隔開,而且它裏面可以存放各種數據類型。
列表相對於字符串來說,不僅可以存儲不同的數據類型,而且可以存儲大量數據,而且列表是有序的,有索引值,可切片,方便取值。
列表的操作:增刪改查
增:append、insert、extend
1.append;增加到最後
li = [1, 2, 'a', 'b', 4, 'd'] li.append('e') print(li)
結果輸出:
[1, 2, 'a', 'b', 4, 'd', 'e']
2.insert;按照索引去增加
li = [1, 2, 'a', 'b', 4, 'd'] li.insert(2, 3) print(li)
結果輸出:
[1, 2, 3, 'a', 'b', 4, 'd']
3.extend;迭代的增加
li = [1, 2, 'a', 'b', 4, 'd'] li.extend(['q,a,w', 'aaa']) li.extend(['abc','def']) li.extend('你好') print(li)
結果輸出:
[1, 2, 'a', 'b', 4, 'd', 'q,a,w', 'aaa', 'abc', 'def', '你', '好']
刪:pop()、del、remove()、clear()
1.pop();按照位置去刪除,有返回值,默認刪除最後一個
li = [1, 2, 'a', 'b', 4, 'd'] list1 = li.pop() list2 = li.pop(1) print(list1) print(list2) print(li)
結果輸出:
d 2 [1, 'a', 'b', 4]
2.del;按照位置去刪除,也可切片刪除,沒有返回值
li = [1, 2, 'a', 'b', 4, 'd'] del li[2:4] print(li)
結果輸出:
[1, 2, 4, 'd']
3.remove;按照元素去刪除
li = [1, 2, 'a', 'b', 4, 'd'] li.remove('a') li.remove('b') print(li)
結果輸出:
[1, 2, 4, 'd']
4.clear();清空列表
li = [1, 2, 'a', 'b', 4, 'd'] li.clear() print(li)
結果輸出:
[]
改:直接替換索引對應的元素,可使用索引方式進行替換
例1:
li = [1, 2, 'a', 'b', 4, 'd'] li[4] = 'c' print(li)
結果輸出:
[1, 2, 'a', 'b', 'c', 'd']
例2:
li = [1, 2, 'a', 'b', 4, 'd'] li[2:6] = [3, 4, 5, 6] print(li)
結果輸出:
[1, 2, 3, 4, 5, 6]
查:切片查,或循環查
循環查舉例:
li = [1, 2, 'a', 'b'] for i in li: print(i)
結果輸出:
1
2
a
b
切片查舉例:
li = [1, 2, 'a', 'b'] print(li[1:3])
結果輸出:
[2, 'a']
其他操作:
1.count (數)(方法統計某個元素在列表中出現的次數)
li = [1, 2, 'a', 'b', 'a'] print(li.count('a'))
結果輸出:
2
2.index (方法用於從裏欸報中找出某個值第一個匹配項的索引位置)
li = [1, 2, 'b', 'a', 'a'] print(li.index('a'))
結果輸出:
3
3.sort (方法用於在原位置對列表進行排序);reverse (方法將列表中的元素反向存放)
li = [1, 2, 5, 3, 4] li.sort() #沒有返回值,所以只能打印li print(li) li.reverse() #它也沒有返回值,所以只能打印li print(li)
li.sort(reverse=True) #反向排序
print(li)
結果輸出:
[1, 2, 3, 4, 5] [5, 4, 3, 2, 1]
[5, 4, 3, 2, 1]
注意:使用sort()方法,列表中同時含有字符串和數字時不能進行排序,會報錯。
sort()方法對字符串排序時,使用的是ASCII碼字符順序,而不是實際的字典順序。這意味着大寫字母排在小寫字母之前。因此在排序時,小寫的a在大寫的Z之後。例如:
>>> li = ['Alina', 'Bob', 'brach', 'Wuli', 'angel', 'willen'] >>> li.sort() >>> li ['Alina', 'Bob', 'Wuli', 'angel', 'brach', 'willen']
如果需要按照普通的字典順序來排序,就在sort()方法調用時,將關鍵字參數key設置爲str.lower。
接上例:
>>> li.sort(key = str.lower) >>> li ['Alina', 'angel', 'Bob', 'brach', 'willen', 'Wuli']
這將導致sort()方法將列表中所有的表項當成小寫,但實際上並不會改變它們在列表中的值。
4.列表的嵌套
li =['zhangsan', '李四', '王五', ['zhaoliu', '李白'], '武力'] print(li[1][1]) #打印出索引爲1的第2個元素 name = li[0].capitalize() #打印索引爲0的元素使其首字母大寫 print(name) li[2] = '王八' #將列表li的索引爲2的元素修改爲'王八' print(li[2].replace('五', '八')) #將打印出列表li索引爲2的元素把五改爲八 li[3][0] = li[3][0].upper() #將列表li索引爲3的嵌套列表索引爲0的元素全部大寫 print(li)
結果輸出:
四 Zhangsan 王八 ['Zhangsan', '李四', '王八', ['ZHAOLIU', '李白'], '武力']
元組
元組被稱爲只讀列表,即數據可以被查詢,但不能被修改,所以字符串的切片操作同樣適用於元組。