Python—列表操做

列表html

列表的使用:
python

列表是可變數據類型,所以列表的方法,都是直接修改列表原始值shell

list = ["panda","chimpanzee","zebra","lion","cat"]app

(1)經過下標訪問列表中的元素,下標從0開始計數ide

1 >>> list[0]
2 'panda'
3 >>> list[2]
4 'zebra'
5 >>> list[-1]  倒着訪問,下標從【-1】開始
6 'cat'
7 >>> list[-5]
8 'panda'

 

(2)切片  list = ["panda","chimpanzee","zebra","lion","cat"]函數

 1 >>> list[1:4]
 2 ['chimpanzee', 'zebra', 'lion']   #顧頭不顧尾
 3 >>> list[1:-1]
 4 ['chimpanzee', 'zebra', 'lion']   #顧頭不顧尾,下標【1】爲'chimpanzee',【-1】爲從右邊數第一個
 5 >>> list[0:3]
 6 ['panda', 'chimpanzee', 'zebra']  #0表示從第一個開始取
 7 >>> list[:3]
 8 ['panda', 'chimpanzee', 'zebra']  #從第一個開始取也能夠爲空表示
 9 >>> list[3:]                      
10 ['lion', 'cat']                   #從下標【3】取到最後一個,包括最後一個
11 >>> list[3:-1]                    
12 ['lion']
13 >>> list[0::2]
14 ['panda', 'zebra', 'cat']         #此處的2表示,每隔一個元素,取一個    
15 >>> list[::2]
16 ['panda', 'zebra', 'cat']
17 >>> list[2:2]     ------ []       #此處取值爲空
list[:] 對list所有切片,能夠起到複製的做用,同時 list[:]也可使用list全部的方法

 

(2)列表的經常使用操做spa

追加:append()加到列表最尾code

1 >>> zoo
2 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone']
3 >>> zoo.append("追加")
4 >>> zoo
5 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone', '追加']
6 >>> 
View Code

 

插入: 想插入哪裏,下標就寫哪裏htm

1 zoo
2 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone', '追加']
3 >>> zoo.insert(1,"從chimpanz前插入")
4 >>> zoo
5 ['panda', '從chimpanz前插入', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone', '追加']
6 >>> zoo.insert(4,"從lion前插入")
7 >>> zoo
8 ['panda', '從chimpanz前插入', 'chimpanzee', 'zebra', '從lion前插入', 'lion', 'cat', 'newone', '追加']
9 >>> 
View Code

 

修改:blog

1 >>> zoo
2 ['panda', '從chimpanz前插入', 'chimpanzee', 'zebra', '從lion前插入', 'lion', 'cat', 'newone', '追加']
3 >>> zoo[1]="換成gorilla"
4 >>> zoo
5 ['panda', '換成gorilla', 'chimpanzee', 'zebra', '從lion前插入', 'lion', 'cat', 'newone', '追加']
6 >>> 
View Code

 

刪除:(有三種刪除方式 del ,remove【刪除指定元素,若是有多個,取列表的第一個匹配項】,pop【若是不輸入下標,默認刪除最後一個】)

 1 >>> del zoo[1]
 2 >>> zoo
 3 ['panda', 'chimpanzee', 'zebra', '從lion前插入', 'lion', 'cat', 'newone', '追加']
 4 >>> zoo.remove("從lion前插入")
 5 >>> zoo
 6 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone', '追加']
 7 >>> zoo.pop()   #刪除列表最後一個值
 8 '追加'
 9 >>> zoo
10 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone']
11 >>> 
View Code

#pop雖然是刪除,不過會獲取每個被刪除的元素,list2.append(list.pop()) ,從而達到list刪除,list2增長的目的

 

擴展:

1 >>> zoo
2 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone']
3 >>> b=[1,2,3]
4 >>> zoo.extend(b)
5 >>> zoo
6 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone', 1, 2, 3]
7 >>> 
View Code

 

統計:

1 >>> zoo
2 ['panda', 'chimpanzee', 'zebra', 'lion', 'cat', 'newone', 1, 2, 3]
3 >>> zoo.count("newone")    #統計列表中有多少個【newone】
4 1                   
5 >>> 
View Code

 

排序和反轉: 其中排序是按照ASCII碼順序進行排序

 1 >>> zoo.sort()
 2 Traceback (most recent call last):  #python3中 int和str不能排序
 3   File "<pyshell#45>", line 1, in <module>
 4     zoo.sort()
 5 TypeError: '<' not supported between instances of 'int' and 'str'
 6 >>> zoo[-1]="3"             #修改
 7 >>> zoo[-2]="2"
 8 >>> zoo[-3]="1"
 9 >>> zoo
10 ['cat', 'chimpanzee', 'lion', 'newone', 'panda', 'zebra', '1', '2', '3']
11 >>> zoo.sort()                 #排序
12 >>> zoo
13 ['1', '2', '3', 'cat', 'chimpanzee', 'lion', 'newone', 'panda', 'zebra']
14 >>> zoo.reverse()            #反轉
15 >>> zoo
16 ['zebra', 'panda', 'newone', 'lion', 'chimpanzee', 'cat', '3', '2', '1']
17 >>> 
View Code 
"""
有一個列表[11, 2, 3, 3, 7, 9, 11, 2, 3],去重而且保持原來的順序.
"""
l1 = [11, 2, 3, 3, 7, 9, 11, 2, 3]
ret = list(set(l1))
print(ret)
ret.sort(key=l1.index)  # 按值在l1中的索引進行排序
print(ret)

l2 = [
    {"name": "alex", "age": 36},
    {"name": "GoldBoss", "age": 30},
    {"name": "xiaoyima", "age": 18}
]
# 課後做業
l2.sort(key=lambda x: x["age"])
print(l2)
sort(key=lst.index)

 

 

獲取下標:

1 >>> zoo
2 ['zebra', 'panda', 'newone', 'lion', 'chimpanzee', 'cat', '3', '2', '1']
3 >>> zoo.index("panda")
4 1
5 >>> 

 

清空:

zoo.clear()  #清空列表

 

複製:淺copy

 1 >>> zoo2222 = zoo.copy() #複製
 2 >>> zoo2222
 3 ['zebra', 'panda', 'newone', 'lion', 'chimpanzee', 'cat']
 4 >>> zoo[0]="dog"
 5 >>> zoo
 6 ['dog', 'panda', 'newone', 'lion', 'chimpanzee', 'cat']
 7 >>> zoo2222
 8 ['zebra', 'panda', 'newone', 'lion', 'chimpanzee', 'cat']
 9 >>> 
10 
11 此時修改了zoo的一個元素,zoo2222不會一塊兒改
12 但這只是淺copy,只複製了第一層
13 
14 當zoo的元素中包含了列表,修改改聊表中的值,zoo2也會一塊兒修改
15 >>> zoo
16 ['dog', 'panda', 'newone', 'lion', 'chimpanzee', 'cat', ['peter', 'tony']]
17 >>> zoo2 = zoo.copy()
18 >>> zoo2
19 ['dog', 'panda', 'newone', 'lion', 'chimpanzee', 'cat', ['peter', 'tony']]
20 >>> zoo[6][0]="PETER"
21 >>> zoo2
22 ['dog', 'panda', 'newone', 'lion', 'chimpanzee', 'cat', ['PETER', 'tony']]
23 >>> 
24 
25 另外:
26 list = list2
27 此時與 str = str2 不一樣,
28 此時的list至關於只向list2的內存地址,list2修改,list也會跟着一塊兒修改
View Code

 若要進行深copy:copy模塊中copy仍是淺copy,deep copy纔是深copy

1 1 import copy
2 2 zoo3 = copy.deepcopy(zoo)
3 3 #此時修改zoo,無論zoo中是否包含列表,zoo3都不會影響。
View Code

 

 

小結,列表用到的函數有:append,insert,extend,pop,remove,clear,index,count,reverse,sort,copy

 

元組(tuple)

只可查列表,只能查

可用函數只有 count,index 

 http://www.runoob.com/python3/python3-tuple.html

>>> a = (1,2,3)
>>> b = (5,6,7)
>>> a+b
(1, 2, 3, 5, 6, 7)
>>> c = (5,6,8)
>>> b+c
(5, 6, 7, 5, 6, 8)
>>> 
相關文章
相關標籤/搜索