1. 程式人生 > >第五章 列表、元組和字串[DDT書本學習 小甲魚]【4】

第五章 列表、元組和字串[DDT書本學習 小甲魚]【4】

5.1.9 關於分片“拷貝”的概念補充 【真正的拷貝是切片】
程式碼
list1=[1,3,2,9,7,8]
list2=list1[:]
print(list2)
list3=list1
print(list3)
----------------------
[1, 3, 2, 9, 7, 8]
[1, 3, 2, 9, 7, 8]

以上程式碼看似一樣的輸出結果,事實上呢,作如下修改後
list1 = [1, 3, 2, 9, 7, 8]
list2 = list1[:]
list3=list1
#==============#
list1.sort()
print(list1)
print(list2)
print(list3)
-------------------
[1, 2, 3, 7, 8, 9]
[1, 3, 2, 9, 7, 8] #切片是另外拷貝出來的,不變
[1, 2, 3, 7, 8, 9] #Python裡 變數似標籤 一個數據貼了2個標籤而已

圖片解析:“切片”和“貼標籤”的不同之處


5.2 元組:戴上了枷鎖的列表
元組是列表的表親,最大區別是:列表可以改變,而元組不可以改變,建立
元組的時候大多用小括號。
5.2.1 建立和訪問一個元組
程式碼 訪問元組和列表沒什麼差別
tuple1=(1,2,3,4,5,6,7,8)
print(tuple1)
print(tuple[1])
print(tuple[:5])
print(tuple[5:])
-------------------
(1, 2, 3, 4, 5, 6, 7, 8)
2
(1, 2, 3, 4, 5)
(6, 7, 8)

也可以用分片的方式來複制一個元組
tuple1=(1,2,3,4,5,6,7,8)
tuple2=tuple1[:]
print(tuple2)
-----------------------
(1, 2, 3, 4, 5, 6, 7, 8)
試圖去修改tuple1的元素--------出錯了
tuple1=(1,2,3,4,5,6,7,8)
tuple1[1]=100
print(tuple1)
-----------------------------
TypeError: 'tuple' object does not support item assignment

開始實驗:列表的標誌是[],那麼元組的標誌是()麼?不對,是逗號。證明如下
程式碼
temp=(1)
print(temp)
print(type(temp))
------------------------
1
<class 'int'>
程式碼
temp=1,2,3
print(temp)
print(type(temp))
-------------------------
(1, 2, 3)
<class 'tuple'>
發現沒有?逗號才是關鍵,當然,如果建立一個空元組,可以用()
temp=()
print(type(temp))
-----------------------
<class 'tuple'>
所以,建立元組,記得做上標記,逗號 這樣他們都屬於元組了
temp=(1,)
temp1=1,
print(temp)
print(temp1)
----------------------
(1,)
(1,)
為了證明逗號的決定性作用,再舉個例子
a=8*(8)
print(a)
b=8*(8,)
print(b)
----------------
64
(8, 8, 8, 8, 8, 8, 8, 8)
===============================未完待續 =================================