91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中如何使用Frozenset對象

發布時間:2022-08-24 16:28:56 來源:億速云 閱讀:155 作者:iii 欄目:開發技術

這篇文章主要講解了“Python中如何使用Frozenset對象”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python中如何使用Frozenset對象”吧!

關于Frozensets

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

創建一個新的Frozenset對象

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

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

代碼中的第一條語句定義了一個新的列表,它被簡單地稱為 "l"。接下來,通過調用frozenset函數并提供列表作為參數,創建了一個新的frozenset對象。運行上述代碼示例后,你應該得到以下輸出。

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

正如你在輸出中看到的,fset是一個frozenset類型的對象,它使用了Python中set也使用的大括號語法。Frozenset只包含唯一的項目,因為不允許有重復的項目,這一點與Python的set類型對象非常相似。每個frozenset類型的對象都是一個 Python 集合,但反之亦然,因為集合項可以通過調用一些方法來改變。注意,你可以通過調用沒有任何參數的frozenset函數來創建一個空的frozenset

一旦創建了Frozenset,你就不能修改它了

如前所述,一個frozenset類型的對象有一些項目,在其生命周期內不會改變。雖然你可以用 frozenset 類型對象使用 Python 集合的方法,但是如果你試圖使用改變原始frozenset對象本身的方法,就會出現錯誤。下面是一個例子。

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

在上面的代碼示例中,有兩條語句調用了集合類型對象的 "刪除"方法。雖然一個項目被成功地從 "new_set"中刪除,但當對 "fset"調用remove方法時,卻拋出了一個錯誤。運行上述代碼示例后,你應該得到以下輸出。

{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 "等,對forzensets不起作用。

與 Frozensets 一起使用的方法

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

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))

這些代碼是不言自明的。一些不改變原始frozensets值的方法已經被調用。這些方法主要用于比較兩個不同frozensets的元素。運行上述代碼樣本后,你應該得到以下輸出。

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

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

Frozenset可以被轉換為其他可迭代類型

你可以通過調用它們的主構造函數將frozenset類型的對象轉換為其他可迭代的對象。下面的代碼示例顯示了將frozenset類型對象轉換為list、tuple和set類型對象。

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

運行上述代碼樣本后,你應該得到以下輸出。

[1, 2, 3, 4]

(1, 2, 3, 4)

{1, 2, 3, 4}

Frozenset使用案例

由于frozenset對象只不過是不可改變的/不可變的集合類型的 Python 對象,你可能會想知道它們的效用,因為集合總是可以被用來代替它們。frozenset最明顯的用例是用于聲明具有獨特元素的集合類型對象,而沒有在代碼中意外改變它們的風險。Frozenset類型的對象可以被用作字典的鍵,而集合則不能用于同樣的目的。由于frozenset是可散列的,它們可以在集合內使用,而集合不能插入到另一個集合中。看一下下面的代碼。

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

在第二條語句中,一個frozenset已經在創建過程中被添加到一個集合中。在最后一條語句中,一個集合類型的對象被用在另一個集合里面。運行上述代碼示例后,你應該得到以下輸出。

{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可以被添加到其他集合中。另一方面,將一個集合添加到另一個集合中會產生一個錯誤,因為集合只接受可散列類型的項目。

感謝各位的閱讀,以上就是“Python中如何使用Frozenset對象”的內容了,經過本文的學習后,相信大家對Python中如何使用Frozenset對象這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青田县| 大冶市| 中西区| 仙游县| 洱源县| 都兰县| 禄劝| 岚皋县| 建始县| 郁南县| 龙海市| 吉安市| 宁城县| 玉树县| 阳信县| 方山县| 宝兴县| 白山市| 精河县| 汝阳县| 宕昌县| 桦川县| 双牌县| 克拉玛依市| 祁阳县| 仁化县| 原阳县| 玛多县| 米脂县| 台湾省| 思南县| 兴安县| 昭平县| 靖江市| 蛟河市| 阳曲县| 岳普湖县| 岗巴县| 万宁市| 咸宁市| 高安市|