1. 表的求長
2. 下標表示式
3. 表的構造
4. 處理表的基本方法
5. 表的巢狀
6. 程式設計例項
7. 表的操作**
8. 深淺拷貝
>>>lst = [1,2,3,4,5]
>>>len(lst)
5
>>>lst = [1,2,3,4,5]
>>>lst[0]
1>>>lst[-1]
5
>>>lst = ['math','phys','econ']
>>>lst[1] = ['eng']
>>>lst
['math','eng','econ']
>>>list('abcde')
['a','b','c','d','e']
>>>list(range(10))
[0,1,2,3,4,5,6,7,8,9]
>>>list(1234)
traceback (most recent call last):
file "", line 1, in typeerror: 'int' object is not iterable #iterable是可迭代物件,1234不是可迭代物件
在字串中,我們可以通過 + 與 * 這兩個操作構造新的字串,在表中,這兩個操作也可以得到新錶
>>>list1 = [1,2,3]
>>>list2 = [4,5,6]
>>>list1 + list2
[1,2,3,4,5,6]
>>>list1 * 2
[1,2,3,1,2,3]
a. 用表長度生成迴圈列表,利於修改表物件
>>>for i in range(len(list1)):
... list1[i] ...
b. 表是可迭代物件,python允許把序列直接作為可迭代物件,簡化寫法,不利於修改表物件
>>>for i in list1:
... i ...
>>>list1 = [[1,2,3],['a','b','c'],10]
>>>list1[0]
[1,2,3]
>>>list1[1][1]
'b'
def total(invoice):
sum = 0.0
for price, quantity in invoice:
sum += price * quantity
return sum
for語句的頭部用了兩個變數,分別取得元素表中的兩個元素,等同於:
def total(invoice):
sum = 0.0
for entry in invoice:
sum += entry[0] * entry[1]
return sum
序列
表示式意義
1把x加到表的最後
2s.reverse() ; reversed(s) ;
反轉s裡的所有元素
3s.copy()
建立乙個s的拷貝,等同於s[:]
4s.count(x)
x在s**現的次數
5del s[i] ; del s[i:j] ; del s[i:j:k]
刪除表中位置i的元素;刪除[i:j]間的所有元素;刪除[i:j]間以k為步長的元素
6s.clear()
清空列表
7s.extend(x)
將x的內容,擴充套件到s
8s.pop() ; s.pop(i)
取s中下標為i的元素(預設為-1),並從表中刪除
9s.remove(x)
刪除表中第乙個x
10s.insert(i,x)
將x插入位置i,i後元素,下標加1
11s.index(x[,i[,j]]
x在s中首次出現的下標
12max(s) ; min(s)
s中的最大元素;s中的最小元素
13s.sort() ; sorted(s)
按元素 < 關係進行排序
14s.sort(reverse=true)
按元素 > 關係進行排序
簡單例項
>>>lst = [1,2,3]
>>>lst
[1,2,3,4]
# s.reverse() ; reversed()
>>>lst = [1,2,3]
>>>lst1 = lst.reverse()
>>>lst1
[3,2,1]
>>>lst2 = reversed(lst)
>>>lst2
[3,2,1]
#s.copy()
>>>lst = [1,2,3]
>>>lst1 = lst.copy()
>>>lst1
[1,2,3]
#(可以分為淺拷貝與深拷貝,後做詳細說明)
#s.count(x)
>>>lst = [1,2,3,1,2,3,3,3]
>>>lst.count(3)
4#del s[i]
>>>lst = [1,2,3]
>>>del lst[0]
>>>lst
[2,3]
#s.clear()
>>>lst = [1,2,3]
>>>lst.clear()
>>>lst
#s.extend(x)
>>>lst = [1,2,3]
>>>x = [4,5,6]
>>>lst
[1,2,3,4,5,6]
#s.pop()
>>>lst = [1,2,3]
>>>lst.pop()
3>>>lst
[1,2]
#s.remove(x)
>>>lst = [1,1,2,3]
>>>lst.remove(1)
>>>lst
[1,2,3] #只刪除lst中第乙個出現的x
#s.insert(i,x)
>>>lst = [0,2,3]
>>>lst.insert(1,1)
>>>lst
[0,1,2,3]
#max(s) ; min(s)
>>>lst = [1,2,3]
>>>max(lst)
3>>>min(lst)
1#s.sort() ; sorted()
>>>lst = [5,3,2,4,1]
>>>lst.sort()
>>>lst
[1,2,3,4,5]
#s.sort(reverse = true)
>>>lst = [5,3,2,4,1]
>>>lst.sort(reverse = true)
>>>lst
[5,4,3,2,1]
lst = ['猴子','豬',['馬','牛']]
lst2 = lst.copy() #也可以再倒入copy包之後,用copy.copy(lst)
print(lst,id(lst))
print(lst2,id(lst2))
print(lst[2],id(lst[2]))
print(lst2[2],id(lst2[2]))
lst2[0] = '悟空' #lst不會變,因為列表中的列表,copy過後id仍然一樣
print(lst2)
print(lst)
lst2[2][0] = '驢' #lst的也變了
print(lst2)
print(lst)
輸出:
['猴子', '豬', ['馬', '牛']] 2271136889288
['猴子', '豬', ['馬', '牛']] 2271136969928
['馬', '牛'] 2271137691592
['馬', '牛'] 2271137691592
['悟空', '豬', ['馬', '牛']]
['猴子', '豬', ['馬', '牛']]
['悟空', '豬', ['驢', '牛']]
['猴子', '豬', ['驢', '牛']]
import copy #深拷貝需呼叫copy包
lst = ['猴子','豬',['馬','牛']]
lst3 = copy.deepcopy(lst)
print(lst,id(lst))
print(lst3,id(lst3))
lst3[0] = '八戒' #lst不會變,因為列表中的列表,copy過後id仍然一樣
print(lst3)
print(lst)
lst3[2][0] = '牛魔王' #lst的仍然不會變
print(lst3)
print(lst)
輸出:
['猴子', '豬', ['馬', '牛']] 2271138549384
['猴子', '豬', ['馬', '牛']] 2271138547016
['八戒', '豬', ['馬', '牛']]
['猴子', '豬', ['馬', '牛']]
['八戒', '豬', ['牛魔王', '牛']]
['猴子', '豬', ['馬', '牛']]
python列表的使用 Python 列表常見用法
列表索引 mlist 1,2,3,3,e 4,5 a a abc 5,6,7 print mlist print mlist 3 7 print mlist 3 1 print len mlist mlist 2 hi,python print mlist print mlist 3 6 print...
Python 列表的使用
需要儲存多個不同的變數 定義列表 儲存的資料型別可以不同 但盡可能儲存相同的資料型別 l 123,456,789,hello 3.14 定義乙個列表 name list 張三 李四 王五 趙六 print name list 0 print name list 1 print name list 2...
Python列表的使用
2 列表的常用方法 a b 1,a 34,1,2 print a,type a print b,type b 1,a 34,1,2 a 1,2 b 2,3 print a b print a 3 輸出 1,2,2,3 1,2,1,2,1,2 a 1,2 b 2,3,1,2 c true,2,1,2 ...