Python資料型別之元祖

2021-09-26 03:38:52 字數 2223 閱讀 1668

python中有乙個很奇怪的資料型別-----元祖(tuple),元祖由括號()表示,被稱為唯讀列表,顧名思義,元祖可以看成乙個列表,但是只有查詢的操作。

# 元祖的建立

# -*- coding:utf-8 -*-

# author: kenny

# 元祖的建立

tuple_1 = 1, 2, 3, 4

print(tuple_1) # (1, 2, 3, 4)

# 建立方法二:用tuple()建立

tuple_2 = tuple((1, 2, 3, 4, 5))

print(tuple_2) # (1, 2, 3, 4, 5)

# 建立方法三:用()建立

tuple_3 = (1, 2, 3, 4, 5, 6)

print(tuple_3) # (1, 2, 3, 4, 5, 6)

tuple_4 = (1)

print(type(tuple_4)) # tuple_5 = ("1001")

print(type(tuple_5)) # tuple_6 = ("1002",)

print(type(tuple_6)) #

tuple_7 = (1, 2, ['a', 'b', 'c'], 'd', 'e', ('name', 'city'))

# 列印索引為0的元素

print ("tuple_7[0] =", tuple_7[0]) # tuple_7[0] = 1

# 切片:從索引為1到最後乙個元素

print ("tuple_7[1:] =", tuple_7[1:]) # tuple_7[1:] = (2, ['a', 'b', 'c'], 'd', 'e', ('name', 'city'))

# 切片:從第乙個元素到倒是第二個元素

print ("tuple_7[:-1] =", tuple_7[:-1]) # tuple_7[:-1] = (1, 2, ['a', 'b', 'c'], 'd', 'e')

# 等價於tuple_7[1:] 從左到右乙個個去取,步長為1

print ("tuple_7[1::1] =", tuple_7[1::1]) # tuple_7[1::1] = (2, ['a', 'b', 'c'], 'd', 'e', ('name', 'city'))

# 反向輸出 步長為1

print ("tuple_7[::-1]", tuple_7[::-1]) # tuple_7[::-1] (('name', 'city'), 'e', 'd', ['a', 'b', 'c'], 2, 1)

# 反向輸出 步長為2(隔乙個去取))

print ("tuple_7[::-2]", tuple_7[::-2]) # tuple_7[::-2] (('name', 'city'), 'd', 2)

# 統計元素個數

print(tuple_7.count("2")) # 0

# 返回元素的索引位置

print(tuple_7.index(2)) # 1

# 計算元組中元素的個數

print(len(tuple_7)) # 6

tuple_8 = (1, "a", ["list_1", 2])

print(tuple_8) # (1, 'a', ['list_1', 2])

print(tuple_8) # (1, 'a', ['list_1', 2, 'list_add'])

這是為什麼呢,不是說元祖一旦被確定,資料就不能被修改了嗎。其實元祖不能被修改是簡單的說法,全稱是元祖內元素在記憶體中的位址不能被修改,就如上個例子,與其說是元祖的資料被修改,不如說是元祖內的列表的資料被修改,因為列表是可變資料,修改列表的資料後列表的位址不變,所以元祖來說位址並沒有發生變化。

咦?不是說元祖只有查詢操作嗎?為什麼又能刪除了呢?對於這一點疑問,我想說的是:這不是刪除元祖的元素,而是刪除元祖這個物件(好吧,只是我湊字數來了)

tuple_9 = (1, "a", ["list_1", 2])

print(tuple_9) # (1, 'a', ['list_1', 2])

del tuple_9

print(tuple_9) # nameerror: name 'tuple_9' is not defined

Python資料型別 元祖

元祖和列表都是有序數列,列表是用 元祖使用 元祖不同的地方在於建立後不能修改 注意 當元祖中只有乙個元素的時候,要加上逗號 乙個括號會被當成運算子使用 比如 元祖的基本操作方法有 統計,查詢,巢狀修改,切片,in not in tuple alex egon hello alex alex tupl...

Python 資料型別 列表,元祖

usr bin env python 直譯器路徑 conding utf 8 預設直譯器編碼為utf 8 name bigox for new name in name print new name range 1,5,1 第乙個引數是範圍的起始位置,第二個引數是範圍的結束位置,第三個為步長.for...

python資料型別(元祖tuple)

元祖 元組 tuple 就是不可更改的列表,一旦建立,便不可更改。除了表示的方式有點不一樣 元組的元素不可更改,元組的其他特性與列表基本一致。一 元祖的建立 t tuple 建立乙個空元組 t1 建立乙個空元組 t2 1,或 t2 1,建立乙個只有乙個元素的元組 特別要注意,逗號不能少 t3 hel...