日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

深挖 Python 元組 pt.1

來源: 責(zé)編: 時間:2023-10-08 07:04:56 272觀看
導(dǎo)讀哈嘍大家好,我是咸魚好久不見甚是想念,2023 年最后一次法定節(jié)假日已經(jīng)結(jié)束了,不知道各位小伙伴是不是跟咸魚一樣今天就開始“搬磚”了呢?我們知道元組(tuple)是 Python 的內(nèi)置數(shù)據(jù)類型,tuple 是一個不可變的值序列tuple 的元

哈嘍大家好,我是咸魚wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

好久不見甚是想念,2023 年最后一次法定節(jié)假日已經(jīng)結(jié)束了,不知道各位小伙伴是不是跟咸魚一樣今天就開始“搬磚”了呢?wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

我們知道元組(tuple)是 Python 的內(nèi)置數(shù)據(jù)類型,tuple 是一個不可變的值序列wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

tuple 的元素可以是任何類型,一般用在存儲異構(gòu)數(shù)據(jù)(例如數(shù)據(jù)庫記錄)的場景wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

那么今天這篇譯文將帶大家深入了解一下 tuple 以及它們的主要功能和示例(原文較長,我分成幾個部分去講)wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

原文鏈接:https://realpython.com/python-tuple/wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

前言

wi128資訊網(wǎng)——每日最新資訊28at.com

tuple 是不可變的,可以存儲固定數(shù)量的元素(也可以叫項(xiàng)目,item)wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

例如可以通過 tuple 來表示笛卡爾坐標(biāo)(x,y)、RGB 顏色(red,green,blue)或者數(shù)據(jù)庫表中的記錄(name,age,job)wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

tuple 的一些特點(diǎn)如下:wi128資訊網(wǎng)——每日最新資訊28at.com

有序:里面的元素可以按照順序排列wi128資訊網(wǎng)——每日最新資訊28at.com

輕量級:與列表等其他序列相比,tuple 消耗的內(nèi)存要少wi128資訊網(wǎng)——每日最新資訊28at.com

從零開始索引:可以從零開始索引訪問里面的元素wi128資訊網(wǎng)——每日最新資訊28at.com

不可變:不可以改變里面的元素wi128資訊網(wǎng)——每日最新資訊28at.com

異構(gòu):可以存儲不同數(shù)據(jù)類型的對象(包括可變對象)wi128資訊網(wǎng)——每日最新資訊28at.com

可嵌套:tuple 里面可以包含 tuplewi128資訊網(wǎng)——每日最新資訊28at.com

可迭代:能夠遍歷里面的元素wi128資訊網(wǎng)——每日最新資訊28at.com

可切片:可以從元組中提取一系列元素wi128資訊網(wǎng)——每日最新資訊28at.com

可組合:支持串聯(lián)操作,可以使用串聯(lián)運(yùn)算符組合多個元組wi128資訊網(wǎng)——每日最新資訊28at.com

可哈希:里面的元素都是不可變時可以用作字典的鍵wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

在 python 中,tuple 是有序的,這意味著其元素保持原始插入順序,這個順序在 tuple 的生命周期內(nèi)保持不變wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

可以按位置或索引訪問元組中的元素(從零開始)wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

tuple 創(chuàng)建

wi128資訊網(wǎng)——每日最新資訊28at.com

tuple 是以逗號分隔的序列對象。要在元組中存儲對象,需要一次創(chuàng)建包含其所有內(nèi)容的元組對象wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

直接創(chuàng)建

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

需要注意的是,括號不是必需的,逗號才是。但是在大多數(shù)情況下括號可以提高代碼的可讀性wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

盡管括號對于定義大多數(shù) tuple 不是必需的,但在創(chuàng)建空 tuple 時必須包含它們:wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

因?yàn)?tuple 是不可變的,所以創(chuàng)建空 tuple 之后無法往里面添加元素。到這里有小伙伴可能會問:既然這樣為什么還要創(chuàng)建一個空 tuple?wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

例如現(xiàn)在有一個構(gòu)建并返回 tuple 的函數(shù),在一些情況下這個函數(shù)不會為生成的 tuple 創(chuàng)建元素,這樣我們就需要返回一個空 tuple。以此來使得函數(shù)的返回值類型保持一致wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

除此之外,下面的情況也需要使用到括號wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

當(dāng)我們使用 % 進(jìn)行格式化輸出的時候:wi128資訊網(wǎng)——每日最新資訊28at.com

  • 第一種加括號:使用括在括號中的元組作為 % 運(yùn)算符的右側(cè)操作數(shù),按預(yù)期工作
  • 第二種沒加括號:報(bào)錯

wi128資訊網(wǎng)——每日最新資訊28at.com

我們創(chuàng)建單個元素的 tuplewi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

可以看到括號不是必需的,尾隨逗號才是wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

使用 tuple() 創(chuàng)建

還可以使用 tuple() 從可迭代對象(列表、集合、字典或字符串)中創(chuàng)建 tuple,默認(rèn)生成一個空 tuplewi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

通過集合來創(chuàng)建 tuple 時需要注意集合是無序的,會影響生成 tuple 中的元素的最終順序wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

如果我們從一個迭代器對象中創(chuàng)建一個tuple,那么 tuple() 函數(shù)會使用迭代器逐個生成元素,然后將這些元素組合成一個元組并返回wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

又或者從生成器表達(dá)式中創(chuàng)建 tuple,生成器是一種特殊的迭代器wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

tuple 索引和切片

wi128資訊網(wǎng)——每日最新資訊28at.com

tuple 中每一個元素都有一個整數(shù)索引,用于指定其在元組中的位置,索引從 0 開始wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

用不同的索引為 tuple 建立索引,可以直接訪問相關(guān)的值。如果使用大 O 符號表示時間復(fù)雜度,那么可以說索引是一個O(1)操作wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

這意味著 tuple 非常適合需要快速訪問序列中的特定項(xiàng)的情況wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

len() 函數(shù)返回 tuple 長度

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

如果使用大于或等于 tuple 長度的索引,則會報(bào)錯wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

還可以使用負(fù)索引,負(fù)索引從右端開始數(shù)起wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

負(fù)索引對于所有 Python 序列(例如列表和字符串)都是通用的wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

如果使用負(fù)索引,則 -len(tuple_object) 將成為元組中的第一項(xiàng)。如果使用低于此值的索引,則會報(bào)錯wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

對于嵌套 tuple,我們該如何訪問到里面的元素?wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

答案是通過多層索引wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

tuple 切片

和其他序列一樣,tuple 可以使用切片操作來提取其中的內(nèi)容wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

[start:stop:step] 此構(gòu)造的一部分稱為切片運(yùn)算符。它由一對方括號和三個可選索引組成:start 、 stop 和 stepwi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

其中第二個冒號不是必須的,如果 step為1的話就可以省略wi128資訊網(wǎng)——每日最新資訊28at.com

Indexwi128資訊網(wǎng)——每日最新資訊28at.com

Descriptionwi128資訊網(wǎng)——每日最新資訊28at.com

Default Valuewi128資訊網(wǎng)——每日最新資訊28at.com

startwi128資訊網(wǎng)——每日最新資訊28at.com

指定要開始切片的索引(開區(qū)間)wi128資訊網(wǎng)——每日最新資訊28at.com


wi128資訊網(wǎng)——每日最新資訊28at.com

0wi128資訊網(wǎng)——每日最新資訊28at.com

stopwi128資訊網(wǎng)——每日最新資訊28at.com

指定希望切片停止提取元素的索引(閉區(qū)間)wi128資訊網(wǎng)——每日最新資訊28at.com

len(tuple_object)wi128資訊網(wǎng)——每日最新資訊28at.com

stepwi128資訊網(wǎng)——每日最新資訊28at.com

提供一個整數(shù)值,表示切片在每個步驟中將跳過多少項(xiàng)wi128資訊網(wǎng)——每日最新資訊28at.com

1wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

tuple 不可變特性

wi128資訊網(wǎng)——每日最新資訊28at.com

Python 的 tuple 是不可變的,這意味著一旦你創(chuàng)建了一個 tuple,你就不能就地更改或更新它的元素,只能創(chuàng)建新的 tuple 對象wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

tuple 不可變的另一個含義是無法對其擴(kuò)容縮容,與列表不同,元組沒有.append() 、 .extend() .insert() .remove() 和 .clear() 方法wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

也不支持 del 語句wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

盡管 tuple 是不可變的,但是我們知道 tuple 里面可以存儲任意類型的對象,包括可變對象wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

這意味著我們可以在 tuple 中存儲列表、集合、字典等其他可變對象wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

student_info 中前兩個元素是不可變的,最后一個是列表(可變),所以我們可以對其進(jìn)行更改wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

又因?yàn)?tuple 是不可變的(可哈希),所以可以用作字典中的 keywi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

如果用作 key 的 tuple 里面包含可變元素,則會報(bào)錯wi128資訊網(wǎng)——每日最新資訊28at.com

圖片圖片wi128資訊網(wǎng)——每日最新資訊28at.com

wi128資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-12240-0.html深挖 Python 元組 pt.1

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 三個殺手級VS Code插件

下一篇: 十個超級實(shí)用的IntelliJ IDEA插件

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 西乌珠穆沁旗| 富平县| 婺源县| 寻乌县| 开远市| 嵊泗县| 龙州县| 邵阳市| 綦江县| 钦州市| 鱼台县| 东兰县| 泰和县| 包头市| 灵台县| 赣榆县| 库车县| 华容县| 东丽区| 西华县| 财经| 利辛县| 麻江县| 大城县| 东源县| 西乡县| 新沂市| 武隆县| 芒康县| 凤翔县| 印江| 盖州市| 唐海县| 阿城市| 兴隆县| 陵川县| 茌平县| 锡林浩特市| 江山市| 卓资县| 临海市|