標籤:字典 ble mat trace pam str 序列 eve net
1、列表和字典、元組都是python中的容器。
2、列表的三個特點:
(1)異構性
可以包含不同種類、任意類型的對象,甚至可以嵌套列表。
L1 = [1, 2, 3, 4, 5]L2 = [1, ‘spam‘, [2.3, 4]]L3 = []
(2)有序性
列表裡裝的元素都是有順序的,可以按照位置序號擷取單個元素,也可以用分區的方法來進行多個連續元素的擷取。
L = [1,2,3,4,5,6,7,8]print(L[1:3])[2, 3]
關於截取片段左右邊界與索引值的對應關係,我們只需記住這麼一個口訣“左閉右開”就OK了。
如果省略掉終止索引,就表示一直截取到末尾。
如果省略掉起始索引,就表示從起始元素就開始截取。
目前我們使用的都是正索引,即從左往右的索引值,最左側的索引值為0,往右依次加1;還有一種負索引的標記法,即從右往左數,最右側是-1,往左依次減1,即-2,-3以此類推。
步進值參數,這個預設是1,即1個挨著1個的取,如果我們想跳著截取,那就得專門設定這個步進參數了。
L = [1,2,3,4,5,6,7,8]print(L[0::2])[1, 3, 5, 7]
對截取出的分區進行修改,會影響到原始的列表嗎?
L = [1,2,3,4,5,6,7,8]b = L[3:-1]print(‘before change:b={}‘.format(b))b[0]=111print(‘after change:b={}‘.format(b))print(‘after change:L={}‘.format(L))before change:b=[4, 5, 6, 7]after change:b=[111, 5, 6, 7]after change:L=[1, 2, 3, 4, 5, 6, 7, 8]
(3)本地可修改
列表的大小和內容可以隨意改變,在插入、刪除、修改列表元素時,不需要建立一份新的列表拷貝,而是在原來的記憶體位址上直接修改列表對象。
1 L = [1,2,3,4] 2 L.append(5) 3 print(L) 4 5 [1, 2, 3, 4, 5] 6 7 L = [1,2,3,4] 8 L.insert(1,10) 9 print(L)10 11 [1, 10, 2, 3, 4]12 13 L = [1,2,3,4]14 L.extend([11,22,33])15 print(L)16 17 [1, 2, 3, 4, 11, 22, 33]
3、列表的修改方法不能被賦值
1 L = [1,2,3,4,5]2 L = L.insert(6,2)3 print(L[2])4 5 Traceback (most recent call last):6 File "E:/12homework/12homework.py", line 3, in <module>7 print(L[2])8 TypeError: ‘NoneType‘ object is not subscriptable
Insert方法的傳回值是None,把None值賦給了L,你就無法找到之前的列表了。
4、列表修改的方法
增加:append(只能在尾部加入)
insert(可在任意位置加入,如果指定的索引值大於序列的總長度,則自動加到末尾)
extend(在尾部一次性加入多個元素)
L = [1,2,3,4]L.append(5)print(L)[1, 2, 3, 4, 5]L = [1,2,3,4]L.insert(1,10)print(L)[1, 10, 2, 3, 4]L = [1,2,3,4]L.extend([11,22,33])print(L)[1, 2, 3, 4, 11, 22, 33]
刪除:remove(傳入指定要刪除的對象)
L1 = [‘aa‘,‘bb‘,‘cc‘]L1.remove(‘aa‘)print(L1)[‘bb‘, ‘cc‘]
del(刪除列表中的一個分區)
del L1[1:3]
pop(它在末端刪除一個元素,並可以將刪除的元素作為傳回值返回給調用者)
L1 = [1,2,3]print(L1.pop())#末端刪除一個元素,彈出刪除的值print(L1)3[1, 2]
分區賦值
L = [4,5,6,7,8,9]L[0] = 0
L = [4,5,6,7,8,9]L[1:3] = [‘aa‘,‘bb‘,‘cc‘,‘dd‘]print(L)[4, ‘aa‘, ‘bb‘, ‘cc‘, ‘dd‘, 7, 8, 9]
本地排序
L = [1,5,3,8,3,2,10]L.sort()print(L)L.reverse()print(L)[1, 2, 3, 3, 5, 8, 10][10, 8, 5, 3, 3, 2, 1]
升級打怪學python———列表