最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Python中元組的三個不常用特性

 更新時間:2022年07月04日 10:52:11   作者:趙卓不凡  
元組是Python中一種重要的內(nèi)置數(shù)據(jù)類型。與列表一樣,我們經(jīng)常使用元組將多個對象保存為相應(yīng)的數(shù)據(jù)容器。本文為大家總結(jié)了元組的三個不常用特性,感興趣的小伙伴可以了解一下

1. 引言

元組是Python中一種重要的內(nèi)置數(shù)據(jù)類型。與列表一樣,我們經(jīng)常使用元組將多個對象保存為相應(yīng)的數(shù)據(jù)容器。然而,與列表不同的是元組的不變性——一個不可改變的數(shù)據(jù)序列。

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"

上述代碼段對我們來說功能很簡單。我們使用一對括號來創(chuàng)建一個元組對象,將不同元素括起來。我們可以通過索引來訪問元組中的單個元素。

除了上述元組的基本用法外,元組還具有其他鮮為人知的用法。讓我們在本文中回顧一下。

3. 創(chuàng)建包含單一元素的元組

正如上述代碼示例,我們使用一對括號來創(chuàng)建元組對象。通常,一個元組對象包含兩個或多個元素,我們使用逗號來分隔這些元素。

如果我們想創(chuàng)建一個僅包含一個元素的元組,我們應(yīng)該怎么做?讓我們試試:

>>> 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)并不像我們中的一些人所想的那樣創(chuàng)建元組對象。相反,它創(chuàng)建了一個整數(shù)。你也許想到了,正確的方法是需要在元素后面加一個逗號:

>>> math_score = (95,)
>>> math_score[0]
95
>>> type(math_score)
<class 'tuple'>

4. 使用下劃線和*來unpack元組

雖然我們可以通過索引來訪問元組的每項元素,但更常見的收單是使用unpack技術(shù),例如:

response = (404, "Can't access website")
response_code, response_data = response

對于unpack技術(shù),我們定義了許多變量,這些變量的數(shù)量與元組的長度相匹配。即元組的每個元素都被分配給相應(yīng)的變量。

如果我們不需要使用所有創(chuàng)建的變量,此時建議使用下劃線來表示這些未被使用的變量。例如針對上述例子,我們可能只對使用變量response_data ,而不使用response_data ,此時我們可以執(zhí)行以下操作:

_, response_data = response

這樣,我們就告訴代碼的讀者,此時我們只對訪問tuple對象的第二個元素感興趣。

當一個元組對象中有多個元素時,如果我們希望可以訪問多個連續(xù)的元素,此時我們可以使用星號表達式:

scores = (98, 95, 95, 92, 91)
algebra, *others, zoology = scores
assert others == [95, 95, 92]

如上所示,我們有一個元組對象,它按字母順序保存了各項課程的分數(shù),我們知道第一門課程是代數(shù),最后一門是動物學(xué)。在上面的例子中,我們通過星號進行unpack操作得到了在中間的三個分數(shù)。

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變量,顯示了各自的位置坐標。當我們訪問這些坐標的單個元素時,代碼看起來不那么簡潔。

雖然我們可以使用自定義類來實現(xiàn)坐標的數(shù)據(jù)類型,但對于這個簡單的數(shù)據(jù)類型,自定義類可能顯得有些臃腫。相反,我們可以使用命名元組來作為輕量級數(shù)據(jù)類型,如下:

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

如上所示,我們調(diào)用namedtuple通過指定類名及其屬性來創(chuàng)建命名元組類?,F(xiàn)在,我們可以通過調(diào)用類的構(gòu)造函數(shù)來創(chuàng)建命名元組類的實例。對于這些實例,我們可以使用點符號來訪問其屬性,這是常規(guī)元組對象無法使用的特性。

6. 總結(jié)

在本文中,我們回顧了Python中元組的三個特性。使用這些特性,可以極大地提升我們代碼的可讀性和可理解性,希望大家可以將其多多應(yīng)用于日常工作中。

到此這篇關(guān)于詳解Python中元組的三個不常用特性的文章就介紹到這了,更多相關(guān)Python元組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python從數(shù)據(jù)庫讀取大量數(shù)據(jù)批量寫入文件的方法

    Python從數(shù)據(jù)庫讀取大量數(shù)據(jù)批量寫入文件的方法

    今天小編就為大家分享一篇Python從數(shù)據(jù)庫讀取大量數(shù)據(jù)批量寫入文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python使用mmap實現(xiàn)內(nèi)存映射文件操作

    Python使用mmap實現(xiàn)內(nèi)存映射文件操作

    內(nèi)存映射通常可以提高I/O的性能,本文主要介紹了Python使用mmap實現(xiàn)內(nèi)存映射文件操作,分享給大家,感興趣的可以了解一下
    2021-06-06
  • 關(guān)于numpy.where()函數(shù) 返回值的解釋

    關(guān)于numpy.where()函數(shù) 返回值的解釋

    今天小編就為大家分享一篇關(guān)于numpy.where()函數(shù) 返回值的解釋,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Django2.2配置xadmin的實現(xiàn)

    Django2.2配置xadmin的實現(xiàn)

    這篇文章主要介紹了Django2.2配置xadmin的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 基于Pytorch實現(xiàn)分類器的示例詳解

    基于Pytorch實現(xiàn)分類器的示例詳解

    這篇文章主要為大家詳細介紹了如何基于Pytorch實現(xiàn)兩個分類器:?softmax分類器和感知機分類器,文中的示例代碼講解詳細,需要的可以參考一下
    2023-04-04
  • Python實現(xiàn)對文件進行單詞劃分并去重排序操作示例

    Python實現(xiàn)對文件進行單詞劃分并去重排序操作示例

    這篇文章主要介紹了Python實現(xiàn)對文件進行單詞劃分并去重排序操作,涉及Python文件讀取、字符串遍歷、拆分、排序等相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • 一文掌握Python正則表達式

    一文掌握Python正則表達式

    這篇文章主要介紹了Python正則表達式的相關(guān)知識,主要包括re模塊的使用及正則表達式基礎(chǔ)知識,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • python Plotly繪圖工具的簡單使用

    python Plotly繪圖工具的簡單使用

    這篇文章主要介紹了python Plotly繪圖工具的簡單使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 學(xué)習(xí)Python中一些實用的庫

    學(xué)習(xí)Python中一些實用的庫

    這篇文章主要介紹了Python學(xué)習(xí)之盤點一些Python中實用的庫,有需要的同學(xué)可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2021-09-09
  • python自動化辦公操作excel的示例詳解

    python自動化辦公操作excel的示例詳解

    這篇文章主要為大家詳細介紹了如何利用python來實現(xiàn)自動化辦公操作excel文件進行各種樣式展示,并自動發(fā)送文件給"老板"的郵箱,希望對大家有所幫助
    2024-03-03

最新評論

安义县| 兴城市| 汉阴县| 信阳市| 澳门| 镇远县| 积石山| 利辛县| 库车县| 长顺县| 桃园县| 敦煌市| 黑河市| 东丰县| 长岛县| 宝应县| 苏尼特右旗| 嘉祥县| 沙雅县| 新蔡县| 博白县| 兴安县| 上虞市| 综艺| 眉山市| 阜宁县| 北海市| 石阡县| 达州市| 贞丰县| 香港 | 渭源县| 耿马| 平原县| 青河县| 綦江县| 旺苍县| 广汉市| 金湖县| 尼勒克县| 闽清县|