(ID爲註釋,方便後面理解)
實例: li = [ 1, 'a', 3.45 , 10000, [1 ,5] , (1 , 5) ] 都是可以的
實例 :
li = [ 1, 'a', 3.45 , 10000, [1 ,5] , (1 , 5) ]
>>>li[-1]
(1,5)
實例:
li = [1, 2, 3, 4, 6, 5, 9]*3
print li #結果 [1, 2, 3, 4, 6, 5, 9, 1, 2, 3, 4, 6, 5, 9, 1, 2, 3, 4, 6, 5, 9]
ID=1 print li[2 : 5] #結果 [3, 4, 6]
ID=2 print li[-3 : -1] #結果 [6, 5]
ID=3 print li[ : 6] #結果 [1, 2, 3, 4, 6, 5]
ID=4 print li[7 : ] #結果 [1, 2, 3, 4, 6, 5, 9, 1, 2, 3, 4, 6, 5, 9]
ID=5 print li[ : ] #結果 [1, 2, 3, 4, 6, 5, 9, 1, 2, 3, 4, 6, 5, 9, 1, 2, 3, 4, 6, 5, 9]
ID=6 print li[3 : 1] #結果 []
切片必須保持左邊界小於有邊界(步長爲正數時)ID6
切片支持正負數作爲索引 ID1,ID2;如果一面不寫,代表直接到首部或者尾部ID3,ID4;全部不寫,打印整個list,ID5
(2).2 關於步長
實例:
print li[ : : 3] #結果 [1, 4, 9, 3, 5, 2, 6]
實例:
print li[1 : 3: -1] #結果 []
print li[3 : 1: -1] #結果 [4, 3]
實例:
li = [1, 2, 3, 4]
li2 = [4, 5, 7]
print li + li2 #結果 [1, 2, 3, 4, 4, 5, 7]
print ---------------
print [42]*10 #結果 [42, 42, 42, 42, 42, 42, 42, 42, 42, 42]
注意:字符串與list不能相加
(4)、元素賦值
類似於數組賦值
(5)、元素刪除
del 元素(類似C++)
實例:
li = [ 1, 2, 5, 6, 7, 9]
del li[2]
print li #結果 [ 1, 2, 6, 7, 9]
實例:
li = [ 1, 2, 6, 6, 7, 9]
ID =1 li[1 : 1] = [10, 22, 23]
print li #結果 [1, 10, 22, 23, 2, 6, 6, 7, 9]
ID = 2 li[2 : 5] = []
print li #結果 [1, 10, 6, 6, 7, 9]
(2)、切片刪除 ID2 把刪除序列賦值爲[]空切片
(3)、切片插入 ID1 類似於賦值
(1)、長度len , 最小值 min,最大值 max,
min max區別於C++,可以比較任意參數
(2)、list函數,把任意一種類型轉化爲列表類型
實例:
s = 'The list is very useful'
print list(s) #結果 ['T', 'h', 'e', ' ', 'l', 'i', 's', 't', ' ', 'i', 's', ' ', 'v', 'e', 'r', 'y', ' ', 'u', 's', 'e', 'f', 'u', 'l']
(3)、append函數 望列表後面添加元素,
append(...)
L.append(object) -- append object to end
可以在列表後面插任意類型的元素(object),可用於列表的擴張,
(4)、extend 可以一次性在列表的後面加另一個序列(也可以用切片賦值實現)
extend(...) #iterable(可以用for循環的)
L.extend(iterable) -- extend list by appending elements from the iterable
實例:
li = [ 1, 2, 6, 6, 7, 9]
li.append(1)
li.append("you are good")
print li #結果 [1, 2, 6, 6, 7, 9, 1, 'you are good']
li.extend([ 1, 2, 4])
li.extend(( 5, 6, 9))
print li #結果 [1, 2, 6, 6, 7, 9, 1, 'you are good', 1, 2, 4, 5, 6, 9]
(6)、index 類似於字符串的index(但list沒有find方法)
(7)、insert 插入 (可以用上面所講的切片賦值插入解決)
實例:
li = [ 1, 2, 6, 6, 7, 9]
li.insert(3,'four')
print li #結果 [1, 2, 6, 'four', 6, 7, 9]
(8)、pop函數 (唯一一個即修改列表又返回值的函數)
實例:
li = [ 1, 2, 6, 10, 7, 9]
print li.pop(2) #結果 6
print li #結果 [1, 2, 6, 7, 9]
棧:用pop函數和append函數維護一個棧(先進後出)
隊列:用pop函數和insert函數維護一個隊列(先進先出)
實例:
x = ['tom', 'jack', 'tom', 'lucy', 'bob', 'tom']
x.remove('tom')
print x #結果 ['jack', 'tom', 'lucy', 'bob', 'tom']
(10)、reserve 反轉函數請注意:本函數改變了列表但不返回值
(11) sort 排序
錯誤實例:
x = [ 1, 2, 6, 10, 7, 9]
y = x.sort()
print x , y #結果 [1, 2, 6, 7, 9, 10] None
正確實例:
x = [ 1, 2, 6, 10, 7, 9]
y = x[ : ] #這一部很重要 如果改成 y = x 結果就要更改(這樣相當於指向同一個列表)
y.sort()
print y #結果 [1, 2, 6, 7, 9, 10]
(12)、sorted函數 獲取已排序的列表副本,理論上可以用於任何序列,之後返回一個list
實例:
x = [ 1, 2, 6, 10, 7, 9]
y = sorted(x)
print y #結果 [1, 2, 6, 7, 9, 10]