學習傳送門:
今天學的是元組,元組也是多個元素按照一定的順序構成的序列。元組和列表的不同之處在於,元組是不可變型別,元組用()表示。
下面是基本方法:
#元組的定義和使用
t1=(3,
5,7)
t2=(4,
6,'panking'
)#檢視變數型別
print
(type
(t1)
,type
(t2)
)#遍歷元組
for i in
range
(len
(t1)):
print
(t1[i]
)#或者
for member in t2:
print
(member)
#元組的拼接
t3=t1+t2
print
(t3)
#成員運算
print
('panking'
in t1)
print
('panking'
in t2)
#元組的切片
print
(t3[::
2])#2為間隔
值得注意的是:如果元組中只有乙個元素,需要加上乙個逗號,否則()就不是代表元組的字面量語法,而是改變運算優先順序的圓括號,所以(『hello』, )和(100, )才是一元組,而(『hello』)和(100)只是字串和整數。
元組的打包與解包:
#元組的打包和解包操作a=1
,10,100
#資料打包
print
(type
(a),a)
i,j,k=a
print
(i,j,k)
#資料解包
需要注意的是,打包和解包元素個數必須嚴格相等,否則會報錯
下面給出一種解決變數個數少於元素的個數方法——星號表示式
用星號表示式修飾的變數會變成乙個列表,列表中有0個或多個元素。在解包語法中,星號表示式只能出現一次。
下面給出例項:
a=1,
10,100,
'panking'
i,j,
*k=a
print
(i,j,k)
*i,j,k=a
print
(i,j,k)
i,j,k,
*l=a
print
(i,j,k,l)
i,j,k,l,
*o=a
print
(i,j,k,l,o)
執行結果:
1 10 [100, 『panking』]
[1, 10] 100 panking
1 10 100 [『panking』]
1 10 100 panking
[finished in 0.1s]
交換變數的值:
a,b=b,a a,b,c=b,c,a(b的值賦給a,c的值賦給b,a的值賦給c)
在python中,三個變數以下,變數值的交換不需要中間變數的參與。如果有多於三個變數的值要依次互換,這個時候沒有直接可用的位元組碼指令,執行的原理就是我們上面講解的打包和解包操作。
利用元組實現函式返回多個數值:
#編寫乙個返回最大,最小值的函式
deffind_max_and_min
(items)
:max
=min
=items[0]
for member in items:
if member<=
min:
min=member
elif member>=
max:
max=member
return
max,
min#這時的返回值就是乙個二元組a=1
,3,5
,7,9
b=[2,
4,6,
8,10]
print
(find_max_and_min(a)
)print
(find_max_and_min(b)
)
元組的優點(和列表相比):
同樣的資料佔的空間少,執行時間短
列表和元組是可以互相轉換的,前面提到,元組是不可變型別,如果想改變元組的話,我們可以先把元組變成列表,修改後再把列表變回元組
如:
#通過元組和列表的轉換實現對元組的修改t=(
1,3,
5)t1=list
(t)print
(t1)7)
t=tuple
(t1)
print
(t)
結果:
[1, 3, 5]
(1, 3, 5, 7)
[finished in 0.1s]
c 自學之路第八天
一 筆記 1.類語法 public class 類名 寫好類後建立物件,我們管建立這個類的物件的過程稱之為例項化。使用關鍵字new this 代表當前類的物件。類不佔記憶體,而物件佔記憶體 2.屬性 屬性的作用就是保護字段,對字段的賦值和取值進行限定。屬性的本質就是兩個方法 set和get 3.訪問...
python打卡第八天
一,字典 字典是另一種可變容器模型,且可儲存任意型別物件。字典的每個鍵值 key value 對用冒號 分割,每個對之間用逗號 分割,整個字典包括在花括號 中 格式如下所示 d 鍵必須是唯一的,但值則不必。值可以取任何資料型別,但鍵必須是不可變的,如字串,數字或元組。dict 建立字典 print ...
Python學習第八天
字典與集合 字典是一種列表,只不過其中儲存的元素成了鍵值對,字典的每個鍵值 key value 對用冒號 分割,每個鍵值對之間用逗號 分割,整個字典包括在花括號 中 格式如下所示 d 值可以取任何資料型別,但鍵必須是不可變的,如字串,數字或元組。乙個簡單的字典例項 dict1 dict2 dict ...