定義用於儲存一組資料的有序序列,一旦建立,元組元組中的各個元素不允許修改
特點(1) 元組有序
(2) 元組是不可變的資料型別,不可修改,但是可以對元組進行連線組合
(3) 元組中可以儲存重複的資料
(4) 元組中可以同時儲存不同資料型別的資料
(5) 元組中只包含乙個元素時,需要在元素後邊新增乙個逗號消除歧義
(6) 元組中包含列表元素,列表元素內容可以修改
建立元組
用小括號()括起來,單個元素括起來後加逗號(,)區分單個物件還是元組
(元素一,元素二,元素三,……)
(1) 建立空元組的字面值
t=()
t=tuple
()
(2) 建立非空元組的字面值
d1=
tuple
("fasadada"
)d2=
tuple([
34,5,
6,7,
8,9]
)
序列封包與序列解包
(1) 序列封包
把多個值賦給乙個變數時,python會自動把多個值封裝成元組,稱為序列封包
(2) 序列解包
把乙個序列(列表、元組、字串等)直接賦給多個變數,此時會把序列中的各個元素依次賦值給每個變數,但是元素的個數需要和變數的個數相同,這個稱為序列解包
(3) 什麼叫序列
序列可以理解為可以進行切片、相加相乘、索引、成員資格、(用關鍵字in、not in關鍵字判斷某個元素在不在這個序列)的資料結構
python中內建的三種資料結構:列表、元組、字典,只有字典不是序列,字串
isinstance(x,tuple):判斷x是否為元組,如果x是元組返回true,否則返回false
元組定義
a=()
b=tuple()
c=(1,
2,3,
4,5,
6,7,
8,9)
d=(23,
"afdasf",67
,[1,
2,3,
4,4]
,8,88
,(23,
4,5,
89))print
(a,type
(a),
len(a)
)print
(a,type
(b),
len(b)
)print
(a,type
(c),
len(c)
)print
(a,type
(d),
len(d)
)
強制轉換
字串強轉為元組時,將字串中的每乙個字元作為乙個元素轉換
d1=
tuple
("fasadada"
)print
(d1)
d2=tuple([
34,5,
6,7,
8,9]
)print
(d2,
type
(d2)
)
元組的訪問:和list一樣
c=(1,2,3,4,5,6,7,8,9)
d=(23,「afdasf」,67,[1,2,3,4,4],8,88,(23,4,5,89))
print(c[0],c[1],c[-1],c[-2])
print(d[0],d[1][1],d[-1][-1])
乙個元素的元組
f1=
234,
f2=(
345,
)f3=
234f4=
123,
456,
789,
f5,f6,f7=
123,
456,
789print
(f1,
type
(f1)
)print
(f2,
type
(f2)
)print
(f3,
type
(f3)
)print
(f4,
type
(f4)
)print
(f5,
type
(f5)
)print
(f6,
type
(f6)
)print
(f7,
type
(f7)
)f8,f9=[1
,2]print
(f8,
type
(f8)
)print
(f9,
type
(f9))t=
200,
t=200t=(
20,)t=
(1,2
,3)t=
100,
200,
300t=(20
)x,y,z=
100,
200,
300x,y,z=
(100
,200
,300
)x,y,z=
"abc"
修改元組的值
d=(23
,"asdada",67
,[1,
2,3,
4,4]
,88,88
,(23,
4,5,
89),)
d[3][
1]="w"
print
(d)
不修改字串物件資料,否則出現
typeerror: 『tuple』 object does not support item assignment
元組中的元組也不能修改,集合型別不能修改
列表可以修改,字串不可以修改
6. 判斷資料型別
e1=()
e2=[
]e3=
e4=(
"name"
,"age"
)print
(isinstance
(e1,
tuple))
print
(isinstance
(e2,
tuple))
print
(isinstance
(e3,
tuple))
print
(isinstance
(e4,
tuple))
x=(1,
2)*3
print
("x="
,x)x=(1
,2,3
)x*=
2print
(x)y=(4
,5,6
)x=(1
,"low",3
)2in x
3in x
4not in x
5in x
"""tuplex=(1
,2,3
,4,5
,6,7
,8,9
,7,8
,9,5
,4,6
)print
(tuplex[1:
2:1]
)t=()
for x in
tuple
(range(1
,10))
: t +=
(x**2,
)print
(t)l =
[x**
2for x in
range(1
,10)]
t=tuple
(l)print
(t)
等差三元組
題目 和是2組不同的等差三元組,除了等差的性質之外,還有個奇妙的地方在於 5 2 3 2 1 2 7 2 5 2 3 2 n 15。同這對三元組也存在同樣的性質 19 2 15 2 11 2 7 2 5 2 3 2 n 15。這種成對的三元組還有很多。當n 15時,有3對,分別是和,和,和。現給出乙...
完美三元組
問題 定義完美三元組,a,b,d a是d的倍數,b是d的倍數,且a b d 1 輸入 t組測試資料,第一行乙個t 1 t 10000 之後t行每行兩個整數l,r,表示三元組中a 的取值區間 l,r 在此條件下,求滿足的完美三元組的總數 1 l r 100000 輸出 乙個整數。分析 首先,a的值已經...
遞增三元組
遞增三元組 描述給定三個整數陣列a a1,a2,an b b1,b2,bn c c1,c2,cn 請你統計有多少個三元組 i,j,k 滿足 1 i,j,k n ai bj ck 輸入第一行包含乙個整數n。第二行包含n個整數a1,a2,an。第三行包含n個整數b1,b2,bn。第四行包含n個整數c1,...