列表list & 元組tuple
阿新 • • 發佈:2018-12-18
1. 列表
list = [val1, val2, val3, val4]
- 列表中的每一個元素都是可變的(可刪除,新增,修改元素)
- 列表中的元素是有序的(可以通過分片索引訪問指定元素)
- 列表中的元素可以是Python中的任何物件
1.1 列表的更新
對序列的基礎操作(分片,索引,相加,乘法)也都同樣適用於列表,此外還有一些序列中沒有的方法,可用來更新列表
- 元素賦值
a = [1,2,3,2,1]
a[1] = 10
print(a)
>>> [1,10,3,2,1]
不能為一個不存在的元素賦值(即:索引的位置在列表中必須存在)
- 增加元素 append方法 list.append(obj)
a = [1,2,3,2,1]
a.append(10)
print(a)
>>> [1,2,3,2,1,10]
- 刪除元素 del
a = [1,2,3,2,1]
del a[2]
print(a)
>>> [1,2,2,1]
- 分片賦值
show = list('hi,boy')
print(show)
>>> ['h','i',',','b','o','y']
show[3:] = list('man')
print(show)
>>> ['h','i',',','m','a','n']
分片賦值可以使用與原序列不等長的序列將分片替換:
s = list('hi')
s[1:]= list('ello')
print(s)
>>> ['h','e','l','l','o']
分片賦值還可以在制定位置插入新元素(不替換原有元素):
b = list('女排奪冠了')
b[2:2] = list('奧運會')
print(b)
>>> ['女','排','奧','運','會','奪','冠','了']
1.2 巢狀列表
在列表中可以鑲嵌列表,鑲嵌的列表取出後還是列表
field = ['a','b','c']
num = ['1','2','3']
mix = [field, num]
print(mix)
>>> [['a','b','c'],['1','2','3']]
mix[0] = ['a','b','c']
1.3 列表方法
方法可以理解為函式的一類分支。基本上遵從 物件.方法(引數) 這一格式
- count 用於統計某個元素在序列/列表中出現的次數 list.count(obj)
mix = [[1,3],5,6,[1,3],2]
print(mix.count([1,3]))
>>> 2
- extend 用於在序列/列表末尾一次性追加多個值 list.extend(obj/seq)
mix = [[1,3],5,6,[1,3],2]
mix.extend([[2,5,6]])
print(mix)
>>> [[1, 3], 5, 6, [1, 3], 2, [2, 6, 5]]
xim = [1,2,3,4]
mix.extend(xim)
print(mix)
>>> [[1, 3], 5, 6, [1, 3], 2, [2, 6, 5],1,2,3,4]
- index 用於從序列/列表中找出某個值第一個匹配項的索引位置 list.index(obj)
mix = [[1,3],5,6,[1,3],2]
print(mix.index([1,3]))
>>> 0
- insert 用於將物件插入列表指定位置 list.insert(index,obj)
mix = [[1,3],5,6,[1,3],2]
mix.insert(1,'A')
print(mix)
>>> [[1,3],'A',5,6,[1,3],2]
- pop 用於移除列表/序列中的一個元素(預設最後一個),並且返回改元素的值 list.pop(obj = list[-1])
mix = [[1,3],5,6,[1,3],2]
mix.pop(0)
print(mix)
>>> [5, 6, [1, 3], 2]
xim = mix
xim.pop()
print(xim)
>>> [5, 6, [1, 3]]
- remove 用於移除列表中某個值得第一個匹配項 list.remove(obj)
mix = [[1,3],5,6,[1,3],2]
mix.remove([1,3])
print(mix)
- append 用於在列表末尾新增新的元素 list.append(obj)
a = [1,2,3,2,1]
a.append(10)
print(a)
>>> [1,2,3,2,1,10]
- reverse 用於反向列表中的元素 list.reverse()此方法可以不傳入引數
mix = [[1,3],5,6,[1,3],2]
mix.reverse()
print(mix)
a = [[1,3],5,6,[1,3],2]
print(list(reversed(a))) #reversed函式並不返回列表,而是返回一個迭代器物件.
# 需要用list函式把返回值的對這項轉換為列表
-
clear 用於清空列表 list.clear()
-
copy 用於複製列表 list.copy()
-
sort 用於對元列表進行(正向)排序。 如果設定引數,就按照引數指定的比較方法隱進行排序 list.sort(func)
mix = [5,6,2]
mix.sort()
print(mix)
>>> [2,5,6]
另外,sort方法還有兩個可選引數(key 和 reverse)
field = ['study','python','is','happy']
field.sort(key=len)
print(field)
>>> ['is', 'study', 'happy', 'python']
field.sort(key=len,reverse=True)
print(field)
>>> ['python', 'study', 'happy', 'is']
2. 元組
Tuple = (val1,val2,val3,val4)
Python中的元組可以被視為更為穩定的列表
- 一旦初始化,元組中的元素不能被修改
- 列表中存在的方法在元組上皆不可用
- 元組可以被索引,擷取和檢視,方式與列表一致
2.1 tuple函式
tuple函式的功能和list函式基本一致,都以一個序列作為引數,並把它轉換為元組
print(tuple(['hello','python']))
>>> ('hello','python')
print(tuple('hello'))
>>> ('h','e','l','l','o')
2.2 元組的基本操作
- 訪問
a = ('e','g','d',1,2)
print(a[2])
>>> d
- 修改/新增 元組中的元素不能修改,但可以通過 + 進行連線補充
a = ('e','g','d',1,2)
b = ('v','12')
print(a + b)
>>> ('e','g','d',1,2,'v','12')
- 刪除 del 用法參照列表方法 del tuple,刪除整個元組
2.3 元組的內建函式
參考序列內建函式(len, max, min)