Python 列表使用

2021-09-22 23:28:12 字數 4909 閱讀 1318

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 ...