python入門到精通(三) 元組

2021-10-10 17:11:14 字數 3962 閱讀 5725

定義用於儲存一組資料的有序序列,一旦建立,元組元組中的各個元素不允許修改

特點(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,...