Python元素的內容還是比較的復雜的,里面包含有很多的不同特性,不同特性之間,其用法也是不一樣的。那么,其中它的三個不同特性之間,里面的內容是什么呢?下面就給大家詳細的解答下。
1.引言
元組是Python中一種重要的內置數據類型。與列表一樣,我們經常使用元組將多個對象保存為相應的數據容器。然而,與列表不同的是元組的不變性——一個不可改變的數據序列。
2.舉個例子
下面的代碼片段向我們展示了元組的一些常見用法。
response=(404,"Can't access website") response_code=response[0] response_data=response[1] assert response_code==404 assert response_data=="Can't access website"
上述代碼段對我們來說功能很簡單。我們使用一對括號來創建一個元組對象,將不同元素括起來。我們可以通過索引來訪問元組中的單個元素。
除了上述元組的基本用法外,元組還具有其他鮮為人知的用法。讓我們在本文中回顧一下。
3.創建包含單一元素的元組
正如上述代碼示例,我們使用一對括號來創建元組對象。通常,一個元組對象包含兩個或多個元素,我們使用逗號來分隔這些元素。
如果我們想創建一個僅包含一個元素的元組,我們應該怎么做?讓我們試試:
>>>math_score=(95) >>>math_score[0] Traceback(most recent call last): File"<stdin>",line 1,in<module> TypeError:'int'object is not subscriptable >>>type(math_score) <class'int'>
正如我們看到的一樣,(95)并不像我們中的一些人所想的那樣創建元組對象。相反,它創建了一個整數。你也許想到了,正確的方法是需要在元素后面加一個逗號:
>>>math_score=(95,) >>>math_score[0] 95 >>>type(math_score) <class'tuple'>
4.使用下劃線和*來unpack元組
雖然我們可以通過索引來訪問元組的每項元素,但更常見的收單是使用unpack技術,例如:
response=(404,"Can't access website") response_code,response_data=response
對于unpack技術,我們定義了許多變量,這些變量的數量與元組的長度相匹配。即元組的每個元素都被分配給相應的變量。
如果我們不需要使用所有創建的變量,此時建議使用下劃線來表示這些未被使用的變量。例如針對上述例子,我們可能只對使用變量response_data,而不使用response_data,此時我們可以執行以下操作:
_,response_data=response
這樣,我們就告訴代碼的讀者,此時我們只對訪問tuple對象的第二個元素感興趣。
當一個元組對象中有多個元素時,如果我們希望可以訪問多個連續的元素,此時我們可以使用星號表達式:
scores=(98,95,95,92,91) algebra,*others,zoology=scores assert others==[95,95,92]
如上所示,我們有一個元組對象,它按字母順序保存了各項課程的分數,我們知道第一門課程是代數,最后一門是動物學。在上面的例子中,我們通過星號進行unpack操作得到了在中間的三個分數。
5.使用命名元組
我們可以使用索引或unpack操作來訪問元組的各個元素,以將這些元素分配給多帶帶的變量。有時,這樣做可能會很丑陋。
請參見以下示例:
location1=(27.2,7.5) location2=(30.1,8.4) location3=(29.9,7.7) latitude1=location1[0] longitude2=location2[1] latitude3,longitude3=location3
上述代碼中,我們有三個location變量,顯示了各自的位置坐標。當我們訪問這些坐標的單個元素時,代碼看起來不那么簡潔。
雖然我們可以使用自定義類來實現坐標的數據類型,但對于這個簡單的數據類型,自定義類可能顯得有些臃腫。相反,我們可以使用命名元組來作為輕量級數據類型,如下:
from collections import namedtuple Location=namedtuple("Location", ["latitude","longitude"]) location1=Location(27.2,7.5) location2=Location(30.1,8.4) location3=Location(29.9,7.7) latitude1=location1.latitude longitude2=location2.longitude location3.latitude,location3.longitude
如上所示,我們調用namedtuple通過指定類名及其屬性來創建命名元組類。現在,我們可以通過調用類的構造函數來創建命名元組類的實例。對于這些實例,我們可以使用點符號來訪問其屬性,這是常規元組對象無法使用的特性。
6.總結
在本文中,我們回顧了Python中元組的三個特性。使用這些特性,可以極大地提升我們代碼的可讀性和可理解性,希望大家可以將其多多應用于日常工作中。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128365.html
摘要:什么是爬蟲一段自動抓取互聯網信息的程序,從互聯網上抓取對于我們有價值的信息四種基本數據結構列表列表中的每個元素都是可變的列表的元素都是有序的,也就是說每個元素都有對應的位置列表可以容納所有的對象波波超哥小明波波超哥小明如果為切片返回的也是列 什么是爬蟲? 一段自動抓取互聯網信息的程序,從互聯網上抓取對于我們有價值的信息 Python四種基本數據結構 列表 **列表中的每個元素都是可變的...
摘要:元組的創建元組是帶了約束的列表,仍可以存放任意數據類型默認元組內容是不可改變的,但當元組內包含可變數據類型時,可以間接修改元組如果元組內只有一個元素,其后要加逗號,否則數據類型不確定元組的常用方法元組的特性索引切片重復連接只能增加元組成 元組(tuple)的創建 元組是帶了約束的列表,仍可以存放任意數據類型 >>> sheen =(1,3,True,3.4,[1,4],(1,5)) >...
摘要:返回元組中元素最大值。將列表轉換為元組。如果相對元組排序,通常先得將它轉換為列表并使其成為一個可變對象,才能獲得使用排序方法,或使用內置方法。 比List更安全的數據類型 大家好,今天為大家介紹一種更為安全的Python內置數據類型:tuple(元組),以及它的基礎用法 元組是什么 元組(tuple)是另一種有序的數據類型,與list比較類似。主要不同的一點是tuple被創建后就不能對...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1983·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02