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

Python中使用Frozenset對(duì)象的案例詳解

 更新時(shí)間:2022年08月24日 14:54:07   作者:吳欣  
Frozensets提供了一種創(chuàng)建不可變的集合的方法,它們只接受唯一的元素,并且是可散列類型的對(duì)象,所以它們可以在其他只接受可散列對(duì)象作為子對(duì)象的?Python?對(duì)象中使用,這篇文章主要介紹了如何在Python中使用Frozenset對(duì)象,需要的朋友可以參考下

這篇文章將介紹在Python中使用 "frozenset "函數(shù)的指南,該函數(shù)返回一個(gè)新的frozenset類型的Python對(duì)象。這些對(duì)象類似于Python中的set對(duì)象,但有一些關(guān)鍵的區(qū)別。本文的所有代碼樣本都是在Ubuntu 21.04上用Python 3.9.5測(cè)試的。

關(guān)于Frozensets

frozenset 函數(shù)接收一個(gè)可迭代類型的 Python 對(duì)象的參數(shù),并返回一個(gè)新的 frozenset 類型的 Python 對(duì)象。一個(gè) frozenset 類型的對(duì)象是一個(gè)可散列的、不可改變的 Python 對(duì)象,其元素在整個(gè)生命周期內(nèi)是凍結(jié)的或不可改變的。與元素可以隨時(shí)改變的集合類型的Python對(duì)象相反,frozenset中的所有項(xiàng)目都保持不變。frozensets 的用法可以通過(guò)例子得到最好的理解。下面將解釋其中的一些。

創(chuàng)建一個(gè)新的Frozenset對(duì)象

要獲得一個(gè)新的 frozenset類型的對(duì)象,只需提供任何可迭代的類型作為frozenset函數(shù)的可選參數(shù)。下面是一個(gè)代碼示例。

l = [1, 2, 3, 4]
fset = frozenset(l)
print (fset)
print (type(fset))

代碼中的第一條語(yǔ)句定義了一個(gè)新的列表,它被簡(jiǎn)單地稱為 "l"。接下來(lái),通過(guò)調(diào)用frozenset函數(shù)并提供列表作為參數(shù),創(chuàng)建了一個(gè)新的frozenset對(duì)象。運(yùn)行上述代碼示例后,你應(yīng)該得到以下輸出。

frozenset({1, 2, 3, 4})
<class 'frozenset'>

正如你在輸出中看到的,fset是一個(gè)frozenset類型的對(duì)象,它使用了Python中set也使用的大括號(hào)語(yǔ)法。Frozenset只包含唯一的項(xiàng)目,因?yàn)椴辉试S有重復(fù)的項(xiàng)目,這一點(diǎn)與Python的set類型對(duì)象非常相似。每個(gè)frozenset類型的對(duì)象都是一個(gè) Python 集合,但反之亦然,因?yàn)榧享?xiàng)可以通過(guò)調(diào)用一些方法來(lái)改變。注意,你可以通過(guò)調(diào)用沒(méi)有任何參數(shù)的frozenset函數(shù)來(lái)創(chuàng)建一個(gè)空的frozenset

一旦創(chuàng)建了Frozenset,你就不能修改它了

如前所述,一個(gè)frozenset類型的對(duì)象有一些項(xiàng)目,在其生命周期內(nèi)不會(huì)改變。雖然你可以用 frozenset 類型對(duì)象使用 Python 集合的方法,但是如果你試圖使用改變?cè)?strong>frozenset對(duì)象本身的方法,就會(huì)出現(xiàn)錯(cuò)誤。下面是一個(gè)例子。

l = [1, 2, 3, 4]
new_set = set(l)
new_set.remove(1)
print (new_set)
fset = frozenset(l)
fset.remove(1)

在上面的代碼示例中,有兩條語(yǔ)句調(diào)用了集合類型對(duì)象的 "刪除"方法。雖然一個(gè)項(xiàng)目被成功地從 "new_set"中刪除,但當(dāng)對(duì) "fset"調(diào)用remove方法時(shí),卻拋出了一個(gè)錯(cuò)誤。運(yùn)行上述代碼示例后,你應(yīng)該得到以下輸出。

{2, 3, 4}
Traceback (most recent call last):
  File "main.py", line 9, in <module>
    fset.remove(1)
AttributeError: 'frozenset' object has no attribute 'remove'

其他類似的方法,如 "add"、"pop"、"clear"、"discard "等,對(duì)forzensets不起作用。

與 Frozensets 一起使用的方法

所有不修改集合項(xiàng)的 Python 集合方法都對(duì)frozenset類型的對(duì)象有效。所以你可以比較兩個(gè)frozenset的等價(jià)或不等價(jià),迭代/循環(huán)它們,獲得兩個(gè)frozenset之間的共同或唯一元素,等等。下面是一個(gè)例子,顯示了一些與frozensets有關(guān)的方法。

fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
print (fset1.intersection(fset2))
print (fset1.union(fset2))
print (fset1.difference(fset2))
print (len(fset1))
print (len(fset2))

這些代碼是不言自明的。一些不改變?cè)?strong>frozensets值的方法已經(jīng)被調(diào)用。這些方法主要用于比較兩個(gè)不同frozensets的元素。運(yùn)行上述代碼樣本后,你應(yīng)該得到以下輸出。

frozenset({3, 4})
frozenset({1, 2, 3, 4, 5, 6})
frozenset({1, 2})
4
4

其他一些處理凍結(jié)集的方法有:"issubset"、"issuperset"、"symmetric_difference"、"copy",等等。像">"、"<"、">="和"<="這樣的等價(jià)運(yùn)算符也適用于frozenset類型對(duì)象。

Frozenset可以被轉(zhuǎn)換為其他可迭代類型

你可以通過(guò)調(diào)用它們的主構(gòu)造函數(shù)將frozenset類型的對(duì)象轉(zhuǎn)換為其他可迭代的對(duì)象。下面的代碼示例顯示了將frozenset類型對(duì)象轉(zhuǎn)換為list、tuple和set類型對(duì)象。

fset = frozenset([1, 2, 3, 4])
print (list(fset))
print (tuple(fset))
print (set(fset))

運(yùn)行上述代碼樣本后,你應(yīng)該得到以下輸出。

[1, 2, 3, 4]

(1, 2, 3, 4)

{1, 2, 3, 4}

Frozenset使用案例

由于frozenset對(duì)象只不過(guò)是不可改變的/不可變的集合類型的 Python 對(duì)象,你可能會(huì)想知道它們的效用,因?yàn)榧峡偸强梢员挥脕?lái)代替它們。frozenset最明顯的用例是用于聲明具有獨(dú)特元素的集合類型對(duì)象,而沒(méi)有在代碼中意外改變它們的風(fēng)險(xiǎn)。Frozenset類型的對(duì)象可以被用作字典的鍵,而集合則不能用于同樣的目的。由于frozenset是可散列的,它們可以在集合內(nèi)使用,而集合不能插入到另一個(gè)集合中。看一下下面的代碼。

fset = frozenset({4, 5})
s = {1, 2, fset}
print (s)
s = {1, 2, {4, 5}}

在第二條語(yǔ)句中,一個(gè)frozenset已經(jīng)在創(chuàng)建過(guò)程中被添加到一個(gè)集合中。在最后一條語(yǔ)句中,一個(gè)集合類型的對(duì)象被用在另一個(gè)集合里面。運(yùn)行上述代碼示例后,你應(yīng)該得到以下輸出。

{frozenset({4, 5}), 1, 2}
Traceback (most recent call last):
  File "main.py", line 27, in <module>
    s = {1, 2, {4, 5}}
TypeError: unhashable type: 'set'

正如你在輸出中看到的,forzensets可以被添加到其他集合中。另一方面,將一個(gè)集合添加到另一個(gè)集合中會(huì)產(chǎn)生一個(gè)錯(cuò)誤,因?yàn)榧现唤邮芸缮⒘蓄愋偷捻?xiàng)目。

總結(jié)

Frozensets提供了一種創(chuàng)建不可變的集合的方法。它們只接受唯一的元素,并且是可散列類型的對(duì)象,所以它們可以在其他只接受可散列對(duì)象作為子對(duì)象的 Python 對(duì)象中使用。

到此這篇關(guān)于如何在Python中使用Frozenset對(duì)象的文章就介紹到這了,更多相關(guān)Python Frozenset對(duì)象內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)的尋找前5個(gè)默尼森數(shù)算法示例

    Python實(shí)現(xiàn)的尋找前5個(gè)默尼森數(shù)算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的尋找前5個(gè)默尼森數(shù)算法,簡(jiǎn)單講述了默尼森數(shù)的概念,并結(jié)合實(shí)例形式分析了Python求解默尼森數(shù)算法的相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • Jupyter Notebook 基本操作快捷鍵方式

    Jupyter Notebook 基本操作快捷鍵方式

    這篇文章主要介紹了Jupyter Notebook 基本操作快捷鍵方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 淺談tensorflow 中的圖片讀取和裁剪方式

    淺談tensorflow 中的圖片讀取和裁剪方式

    這篇文章主要介紹了淺談tensorflow 中的圖片讀取和裁剪方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Pytest實(shí)現(xiàn)setup和teardown的詳細(xì)使用詳解

    Pytest實(shí)現(xiàn)setup和teardown的詳細(xì)使用詳解

    這篇文章主要介紹了Pytest實(shí)現(xiàn)setup和teardown的詳細(xì)使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • python用循環(huán)新建多個(gè)列表的代碼實(shí)例

    python用循環(huán)新建多個(gè)列表的代碼實(shí)例

    當(dāng)我們處理數(shù)據(jù)時(shí),有時(shí)候需要?jiǎng)?chuàng)建多個(gè)列表以存儲(chǔ)不同類型或不同條件下的數(shù)據(jù),在Python中,我們可以利用循環(huán)來(lái)快速、高效地創(chuàng)建這些列表,本文將介紹如何使用循環(huán)在Python中創(chuàng)建多個(gè)列表,并提供代碼實(shí)例,需要的朋友可以參考下
    2024-04-04
  • Python魔術(shù)方法詳解

    Python魔術(shù)方法詳解

    這篇文章主要介紹了Python魔術(shù)方法詳解,本文講解了構(gòu)造和初始化、用于比較的魔術(shù)方法、數(shù)值處理的魔術(shù)方法、普通算數(shù)操作符等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • Python獲取昨天、今天、明天開始、結(jié)束時(shí)間戳的方法

    Python獲取昨天、今天、明天開始、結(jié)束時(shí)間戳的方法

    今天小編就為大家分享一篇Python獲取昨天、今天、明天開始、結(jié)束時(shí)間戳的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Python callable內(nèi)置函數(shù)原理解析

    Python callable內(nèi)置函數(shù)原理解析

    這篇文章主要介紹了Python callable內(nèi)置函數(shù)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python解析命令行讀取參數(shù)--argparse模塊使用方法

    Python解析命令行讀取參數(shù)--argparse模塊使用方法

    這篇文章主要介紹了Python解析命令行讀取參數(shù)--argparse模塊使用方法,需要的朋友可以參考下
    2018-01-01
  • python函數(shù)的兩種嵌套方法小結(jié)

    python函數(shù)的兩種嵌套方法小結(jié)

    這篇文章主要介紹了python函數(shù)的兩種嵌套方法小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01

最新評(píng)論

依兰县| 兴山县| 临泽县| 齐河县| 环江| 敖汉旗| 修文县| 保靖县| 花莲市| 沂源县| 托里县| 景洪市| 黑山县| 蓝山县| 石台县| 东方市| 维西| 信丰县| 鹤山市| 东港市| 前郭尔| 浮梁县| 聂荣县| 汉中市| 漾濞| 滦南县| 丰台区| 特克斯县| 开封市| 江达县| 晋宁县| 个旧市| 平阴县| 科技| 芮城县| 呼伦贝尔市| 宜兰县| 航空| 蓬莱市| 麻阳| 莆田市|