python資料結構之列表、元組及元組與列表之間的相互轉換
一、列表(list)
# names="chenyanhui wujiawei heweimin zhouqingxiang" # print(names) names=["chenyanhui","wujiawei","heweimin","tuoqianqian","zhouqingxiang"] names.append("yujianfeng") #追加在後面 names.insert(1,"tuoqianqian") #insert() 插到某個位置 names.insert(3,"maoxiaoyu") names[2] = "chenzhenwei" # 替換 print(names) # print(names[0],names[2]) # print(names[1:3]) #切片 顧首不顧尾 # print(names[3]) #切片 # print(names[-2]) #切片 ‘-’倒序選擇 # print(names[-2:]) #切片 倒序的第一個0可以省略 # print(names[:2]) #同上 0可以省略 #delete # #names.remove("tuoqianqian") #刪除名字 #del names[1]=names pop(1) #刪除序號的第幾個 #names.pop() #不加下標就是刪除最後一個 print(names) #print(names.index("chenzhenwei")) #index 索引 #print (names[names.index("chenzhenwei")]) #打出索引人的名字 #print(names.count("tuoqianqian")) #count 統計 #names.reverse() #reverse 反轉順序 #names.clear() #clear 清空 #names.sort() #排序:特殊符號、數字、大寫、小寫 (ASCCII碼) print(names) names2=[1,2,3,4,5] names.extend(names2) #exted 擴充套件 把n2拓展到裡面去你 拓展後n2依然存在 #del names2 print(names,names2)
3.列表的應用(深、淺複製)
import copy names=["chenyanhui","wujiawei","heweimin",["jack","bob"],"tuoqianqian","zhouqingxiang"] print(names[0:-1:2]) #切片 print(names[::2]) #省略0 -1 ''' #name2=names.copy() #copy 淺層複製 # name2=copy.deepcopy(names) #deepcopy 深度複製 print(names) print(name2) names[2]="何偉民" names[3][0]="Jack" print(names) print(name2)
4.淺層複製的補充及引用(聯合賬號):
name2=names.copy() #copy 淺層複製
name3=names[:]
names=list(names) #工廠函式
person=["name",["saving moeny","100"]]
p1=person[:]
p2=person[:]
p1[0]="hero"
p2[0]="maria"
p1[1][1]=50 #修改金額
print(p1)
print(p2)
列表相關操作補充:
二、元組(tuple):
元組其實和列表差不多,也是存一組數,只不過一旦建立,便不能再修改,所以又叫只讀列表。
語法:names = (“jack”,"jack","eric")
它只有兩個方法,一個是count,一個是index()。
1、Tuple 與 list 的相同之處:
定義 tuple 與定義 list 的方式相同, 除了整個元素集是用小括號包圍的而不是方括號。
Tuple 的元素與 list 一樣按定義的次序進行排序。 Tuples 的索引與 list 一樣從 0 開始, 所以一個非空 tuple 的第一個元素總是 t[0]。
負數索引與 list 一樣從 tuple 的尾部開始計數。
與 list 一樣分片 (slice) 也可以使用。注意當分割一個 list 時, 會得到一個新的 list ;當分割一個 tuple 時, 會得到一個新的 tuple。
2、tuple的優點:
Tuple 比 list 操作速度快。如果您定義了一個值的常量集,並且唯一要用它做的是不斷地遍歷它,請使用 tuple 代替 list。
三、tuple與list之間的轉換:
Tuple 可以轉換成 list,反之亦然。內建的tuple()函式接收一個 列表引數,並返回一個有著相同元素的 元組 tuple。而 list() 函式接收一個 元組引數返回一個 list。從效果上看,tuple() 凍結列表,而 list 解凍一個元組。
例1:將a分錶轉換成列表和陣列
>>>a
(1,2,3,4)
>>>a=list(a)
[1,,2,3,4]
>>>a=tuple(a)
(1,2,3,4)
>>>
例2:列表和之間的相互轉化:
2.1 list------->tuple :
list = [1,2,3,4] #建立列表
tuple(list) #強制轉換
print type(list) # 檢視是否轉化成功
2.2 tuple----->list:
tuple =(1,2,3,4) #建立元組
list(tuple) # 強制轉換
print type(tuple) #檢視是否轉換成功
Tuple 的其他應用
一次賦多值
>>> v = ('a', 'b', 'e')
>>> (x, y, z) = v
解釋:v 是一個三元素的 tuple, 並且 (x, y, z) 是一個三變數的 tuple。將一個 tuple 賦值給另一個 tuple, 會按順序將 v 的每個值賦值給每個變數。