Python資料型別——列表(List)

Jewel931220發表於2020-10-02

列表的概念

列表類似於JAVA中的陣列,但是它更強大,可以存放任意資料型別

list1 = [10,20,30,40,50]#存放數字
list2 = ['A','B','C','D']#存放字串
list3 = ['a',33,[10,20],{'A':'apple'},(1,2)]#同時存放字元、數字、列表、字典、元組
print(list1,list2,list3)

修改列表

列表是可變物件,可以修改它的值

list1 = [10,20,30]
list2 = ['A','B','C','D']
list3 = ['a',33,[10,20],{'A':'apple'},(1,2)]
#修改列表中值
list1[0] = 90
print(list1) #輸出[90, 20, 30]
list3[2][0] = 96 #如果要修改子列表中的值,需要多用一次下標
print(list3)#輸出['a', 33, [96, 20], {'A': 'apple'}, (1, 2)]

增加列表的值

增加列表中的值有三種方法:append、insert、extend

list1 = [90,20,30]
list1.append(99) #新增值到列表末尾
print(list1) # 輸出[90, 20, 30, 99]

list1.insert(1,36) #新增值到指定的位置,第一個參數列示下標位置,第二個參數列示新增的值
print(list1) #輸出[90, 36, 20, 30, 99]
list1.insert(99,80) #如果下標的值超過了列表的最大下標,則新增到末尾,此時與append一樣

list1.extend([40,50]) #列表的拼接
print(list1) #輸出[90, 36, 20, 30, 99, 40, 50]
list1.extend('abc') #如果拼接的是字串,會將字串轉成列表再進行拼接
print(list1) #輸出[90, 36, 20, 30, 99, 40, 50, 'a', 'b', 'c']

列表的刪除

列表的刪除有兩種方法:pop、remove、del

list1 = [90, 36, 20, 30, 40, 99, 40, 50, 'a', 'b', 'c']
list1.pop() #pop方式不加引數時,預設刪除最後一位
print(list1) #輸出[90, 36, 20, 30, 40, 99, 40, 50, 'a', 'b']
list1.pop(1) #pop新增引數,可以刪除指定下標位置的值
print(list1) #輸出[90, 20, 30, 40, 99, 40, 50, 'a', 'b']
a = list1.pop(-1) #pop方式刪除的值,可以用變數接收
print(a) #輸出b

list1.remove(99) #根據值進行刪除,,它的刪除效率相對較低,也不能用變數接收被刪除的內容
print(list1) #輸出[90, 20, 30, 40, 40, 50, 'a']
list1.remove(40) #當有多個相同的值時,remove方法只刪除第一個遇到的值
print(list1) #輸出[90, 20, 30, 40, 50, 'a']

del list1[0] #刪除第0位的值
print(list1) #輸出[20, 30, 40, 50, 'a']
del list1 #將列表整個刪除
print(list1) #會報錯(name 'list1' is not defined),因為list1已經被刪除,無法找到

列表中的切片

列表的切片[起始值:終止值:步長],包含起始值,不包含終止值,步長是每幾位取一次值,切片不會改變原列表的值:

list = [10,20,30,40,50]
print(list[0:2]) #輸出[10, 20],步長省略時,預設為1
print(list) #輸出[10, 20, 30, 40, 50],切片不改變原列表的值
print(list[::-1]) #輸出[50, 40, 30, 20, 10],翻轉列表,從後往前輸出

list1 = [34,6,-1,90,102,87,99]
sorted(list1) #臨時排序
print(list1) #輸出[34, 6, -1, 90, 102, 87, 99]
list1.sort() #永久排序,從小到大排序
print(list1) #輸出[-1, 6, 34, 87, 90, 99, 102]
list1.sort(reverse = True) #倒序,從大到小排序
print(list1) #輸出[102, 99, 90, 87, 34, 6, -1]
#倒序也可用先排序,再進行翻轉的方法實現

相關文章