元組 帶上枷鎖的列表

2021-10-01 11:26:34 字數 4528 閱讀 3121

由於與列表是近親關係,所以元組和列表在實際使用上是非常類似的,那麼到底元組與列表有什麼不同的地方呢?

建立元組以後每乙個元素不可更改,不可變序

建立和訪問乙個元組

元組大部分用小括號

>>

> tuple1 =(1

,2,3

,4,5

,6,7

,8,9

)>>

> tuple1(1

,2,3

,4,5

,6,7

,8,9

)>>

> tuple1[2]

3>>

> tuple1 [5:

](6,

7,8,

9)>>

> tuple1 [:5

](1,

2,3,

4,5)

>>

> tuple2 = tuple1

>>

> tuple2(1

,2,3

,4,5

,6,7

,8,9

)>>

> tuple1[1]

=2traceback (most recent call last)

: file ""

, line 1,in

tuple1[1]

=2typeerror:

'tuple'

object does not support item assignment

>>

>

type

(tuple1)

<

class

'tuple'

>

>>

> temp =(1

)>>

>

type

(temp)

<

class

'int'

>

>>

> temp =(1

,2,3

)>>

>

type

(temp)

<

class

'tuple'

>

>>

> temp =1,

2,3,

4>>

>

type

(temp)

<

class

'tuple'

>

>>

> temp =()

>>

>

type

(temp)

<

class

'tuple'

>

從上述例子可知,元組的辨識並不是依照括號來區分,而是逗號。如果只要建立乙個元素的元組,只需要加入逗號就可以

>>

> temp =1,

>>

>

type

(temp)

<

class

'tuple'

>

另外當元組出現乘號時候就表示重複操作符了,這個與列表是一致的

>>

>8*

(8,)

(8,8

,8,8

,8,8

,8,8

)

更新和刪除乙個元組儘管不能直接修改,可以以下操作

>>

> temp =

('hcia'

,'hcip'

,'hcie'

)>>

> temp =temp[:2

]+('ccie',)

+temp[2:

]>>

> temp

('hcia'

,'hcip'

,'ccie'

,'hcie'

)

之前的元組還是存在的,只是沒有標籤,過一會自動刪除

刪除整個元組

>>

>

del temp

>>

> temp

traceback (most recent call last)

: file ""

, line 1,in

temp

nameerror: name 'temp'

isnot defined

課後題:

本帖隱藏的內容

0. 請用一句話描述什麼是列表?再用一句話描述什麼是元組?

解:列表:乙個大倉庫,你可以隨時往裡邊新增和刪除任何東西。

元組:封閉的列表,一旦定義,就不可改變(不能新增、刪除或修改)

什麼情況下你需要使用元組而不是列表?

解:當我們希望內容不被輕易改寫的時候,我們使用元組(把權力關進牢籠)。

當我們需要頻繁修改資料,我們使用列表。

當元組和列表掉下水,你會救誰?

解:果是我,我會救列表,因為列表提供了比元組更豐富的內建方法,這相當大的提高了程式設計的靈活性。

回頭來看下元組,元組固然安全,但元組一定建立就無法修改(除非通過新建乙個元組來間接修改,但這就帶來了消耗),而我們人是經常搖擺不定的,所以元組只有在特殊的情況才用到,平時還是列表用的多。

請將左邊列表的內建方法與右邊的注釋連線,並圈出元組可以使用的方法

解:元組果然比較悲劇吧,僅有兩個方法元組可以使用,其他方法都不行

建立乙個元組,什麼情況下逗號和小括號必須同時存在,缺一不可?

解:

>>

> temp =

(『小甲魚』, 『黑夜』, 『迷途』, 『小布丁』)

# 如果我想在「黑夜」和「迷途」之間插入「怡靜」,我們應該:

>>

> temp = temp[:2

]+(『怡靜』,

)+ temp[2:

]

x, y, z = 1, 2, 3 請問x, y, z是元組嗎?

解:

>>

> x, y, z =1,

2,3>>

>

type

(x)<

class

'int'

>

>>

>

type

(y)<

class

'int'

>

>>

>

type

(z)<

class

'int'

>

>>

> h = x, y, z

>>

>

type

(h)<

class

'tuple'

>

請寫出以下情景中應該使用列表還是元組來儲存資料:解:

遊戲中角色的屬性:列表

你的身份證資訊:元組

論壇的會員:列表

團隊合作開發程式,傳遞給乙個你並不了解具體實現的函式的引數:元組

航天火箭各個元件的具體配置引數:元組

nasa系統中記錄已經發現的行星資料:列表

上節課我們通過課後作業的形式學習到了「列表推導式」,那請問如果我把中括號改為小括號,會不會得到「元組推導式」呢?

解:python3 木有「元組推導式」

那為什麼「>>> tuple1 = (x**2 for x in range(10))」不會報錯?

>>

> tuple1 =

(x**

2for x in

range(10

))>>

> tuple1

at 0x000001b4f069da98

>

>>

>

type

(tuple1)

<

class

'generator'

>

tuple1.next()

1

tuple1.next()

4

tuple1.next()

9

tuple1.next()

16

tuple1.next()

25

tuple1.next()

36

Python 元組(戴上了枷鎖的列表)

元組屬於不可變序列,元組是包含多個元素的型別,元素之間用逗號分割。例如 t1 123,456,hello 元組可以是空的,t2 元組包含乙個元素時 t3 123,元組外側可以使用括號,也可以不使用 可以使用tuple函式將其他序列轉換為元組 使用del刪除元組物件,不能刪除元組元素 1.元組中元素可...

FishC筆記 13 講 元組 戴上枷鎖的列表

本期內容詳解 由於和列表是近親關係,所以元組和列表在實際使用上是非常相似的。通過以下幾點進行討論學習 1 型別不可改變 2 可以對元組進行操作的操作符 拼接操作符 重複操作符 成員操作符 in not in 關係操作符 邏輯操作符 and or 3 元組的建立和訪問 逗號是關鍵,建立空元組可寫成te...

4 元組tuple 戴上了枷鎖的列表

簡單介紹 由於和列表是近親關係,所以元祖和列表在實際使用上是十分相似的。我們這節主要通過討論元祖和列表有什麼不同來學習元祖,醬紫大家就不會覺得老是重複相同的內容。我們主要從以下幾個點來討論學習 1 元組的內容是不能被修改的 2 建立和訪問乙個元組 注意 逗號起到決定性作用,而不是小括弧 t1 100...