python frozenset有什麼用?

2025-02-28 04:10:22 字數 4415 閱讀 5020

1樓:網友

set和frozenset皆為無序唯一值序列。set和frozenset最本質的區別是前者是可變的、後者是不可變的 。當集合物件會被改變時(例如新增、刪除元素等),只能使用set ,一般來說使用fronzet的地方都可以使用set 。

frozenset的建立方法為:

frozenset([iterable])例如:>>a = frozenset([3,4,5])>afrozenset([3, 4, 5])>3 in atrue>>>6 in afalse

a = frozenset((1,'2',7))>a

frozenset([1, '2', 7])因為frozenset的不變性,其可以作為dictionary的鍵值及其他set的元素。其執行效率也高於set。

2樓:網友

frozenset和set(無序集合)很相似,但是set是可改變(mutable)的, frozenset是不可改變(immutable)的。frozenset雖然由於不可改變變得不那麼靈動,但是它的查詢效率高於set,還有hash方法來將它對映到dict中。

python set裡面可以是乙個set嗎

3樓:網友

樓上覆制了一大堆,不如自己試下。

s1 =s2 =

s3=typeerror traceback (most recent call last)

in 2 s1 =

3 s2 =

--4 s3=

typeerror: unhashable type: 'set'

集合是unhashable 怎麼能放到集合裡面去。

python中什麼資料型別

4樓:觀微山

python 有6大資料型別,分別是:

number:數值型別 (就是數字,支援int\float\bool\complex型別)

1,2,3,4,str:字串型別 (是有數字、字母、下劃線組成的一串字元,用於對應顯示當中的資料。建立方法:通過用引號括起來的一串字元用「=」指向乙個變數)

a = object"

list: 列表 (有序、可變的序列集合。建立方法:將所有的元素放在[ ]並用「=」指向乙個變數即建立了乙個列表)

list_su = 1,2,3,4,'name','password']

tuple:元組 (不可變的list有序序列,一旦建立無法修改。建立方式:將所有元素放在 ()當中並用「=」指向乙個變數)

tup_m = 23,34,45,'a','b')

set : 集合 (是python基本的資料型別之一,分為可變set()和不可變(frozenset)兩種,一般應用比較少)

dict:字典 (基於雜湊表儲存鍵值對的一種對映機構資料型別。 建立方式:將鍵值對元素放入當中並用「=」指向乙個變數)

dic =

5樓:穆迪想讀博

8天深入理解python教程—python基礎資料型別。

python工程師要具備哪些技能

6樓:網友

掌握python語言,特別是物件導向。熟悉python常用的各類內建模組和第三方模組。

另外就是熟悉python開發常用的開發框架。

這樣就可以了。

python中內建資料型別list,tuple,dict,set的區別和用法

7樓:慧贍禹明

python 中list,tuple,dict,set是最常用的集合型別。

list列表,相當於乙個陣列,不過list的長度是自動變化的而且列表元素自由的,不必每個元素都是同一種型別。它的簡潔的定義方式是a=。有序組合。

tuple也是乙個組合。不過tuple在定義好之後就不能再變化。它的簡潔的定義方式是a=1,3也可以是a=(1,3).有序組合。

dict是字典型別。也就是鍵值對型別。鍵名不可以重複,並且不可以變化(字串就符合這個要求,常用字串作為鍵名)。

它的簡潔的定義方式是a={}.無序組合(意思就是你無法按照新增的順序對他進行遍歷)。

set是set型別(不好翻譯,用的也少)。也是乙個無序的組合,元素是互斥的,也就不會出現相同的元素。可以把乙個序列轉換成無重複元素的set.無序組合。

以下是使用的示例**。12

a_tuple=(1,3423,'34')

a_list=[12,,'sds']

a_dict=

a_set=set('2323')

for t in a_tuple:

print('%s in tuple'%t)

print('*'*10)

for l in a_list:

print('%s in list'%l)

print('*'*10)

for k,v in a_:

print('*'*10)

for s in a_set:

print('%s in set'%s)

print('*'*10)

8樓:笑喘是病得抽

查詢速度快。無論是10個還是10萬個,速度都是一樣的,但是代價是耗費的記憶體大。list相反,佔用記憶體小,但是查詢速度慢。

這就好比是陣列和連結串列的區別,陣列並不知道要開闢多少空間,所以往往開始就會開闢乙個大空間,但是直接通過下標查詢速度快;而連結串列佔用的空間小,但是查詢的時候必須順序的遍歷導致速度很慢。

沒有順序。dict是無順序的,而list是有序的集合,所以不能用dict來儲存有序集合。

key不可變,value可變。一旦乙個鍵值對加入dict後,它對應的key就不能再變了,但是value是可以變化的。

9樓:喵喵喵喵喵咪

內建型別是指任何語言在設計初期定義的型別,如c語言中的int、double、char等。它也是在一種語言中最基本的型別,與編譯器編譯出的**具有重大關係。值得一提的是,不同語言也擁有不同的內建型別, 但是所有內建型別的定義都與計算機的運算方式相關。

python主要內建型別包括數值、序列、對映、類、例項和異常等。

數值型別:全域性中只有乙個(python在直譯器啟動的時候,python會用none型別生成乙個none的物件),包括int型別、float型別、complex型別、bool型別。

迭代型別:在python中,迭代型別可以使用迴圈來進行遍歷。

序列型別:list(是可變序列,通常用於存放同類專案的集合)、tuple(是不可變序列,通常用於儲存異構資料的多項集)、str(在python中處理文字資料是使用str物件,也稱為字串。字串是由unicode碼位構成的不可變序列。

array、range(表示不可變的數字序列,通常用於在for迴圈中迴圈指定的次數)、bytes(由單個位元組構成的不可變序列)、bytearray(bytes物件的可變對應物)、memoryvie(二進位序列)

對映型別:對映物件將具有hash的值對映到任意物件。對映是可變的物件。

目前只有一種標準對映,即dictionary。字典的鍵幾乎是任意值,也就是說,包含列表、字典或其他可變型別的值。

集合型別:作為一種無序的多項集,集合並不記錄元素位置或插入順序。相應地,集合不支援索引、切片或其他序列類的操作。

目前python有兩種內建集合型別:set和frozenset。

set型別是可變的,其內容可以使用add()和remove()這樣的方法來改變。由於是可變型別,它沒有雜湊值,且不能被用作字典的鍵或其他集合的元素。

frozenset型別是不可變並且具有雜湊值,其內容在被建立後不能再改變,因此它可以被用作字典的鍵或其他集合的元素。

上下文管理型別:with語句。

其他型別:模組、class、例項、函式、方法、**、object物件、type物件、ellipsis(省略號)、notimplemented

python有內建函式這個名詞.那就說明也有外接函式嘍?

10樓:網友

函式是可以自己寫的。

內建函式就是python自帶的函式,安裝好python後就可以用。

如果在內建函式中找不到可以實現指定功能的函式,就得自己寫乙個函式,可以稱為自定義函式吧。

11樓:網友

build_in函式可以屬於某個類吧,比如list的remove, replace也都是內建函式啊。

python中set集合中的remove和discard?

12樓:網友

list 字面意思就是乙個集合,在python中list中的元素用中括號來表示,可以這樣定義乙個list: l = [12, 'china', 可以看到並不要求元素的型別都是一樣的。當然也可以定義乙個空的list:

l = python中的list是有序的,

python語法問題,Python語法問題?

因為python屬於抄弱變數語言,宣告函式的引數時bai,並不能du確定引數的型別。這樣就給zhi 的閱讀和維護dao,造成了一點小困擾。比如你宣告的 def add a,b 本意是a,b為整型,但呼叫傳參為字串,直譯器是不會進行判斷的。或者是它人匯入你的模組,呼叫的你的函式,就需要檢視完整 才知道...

python菜鳥求教,python菜鳥求教一個

socket 是用c封裝的so檔案 socket.py 會import socket 的 所有東西 所有 socket 有的 socket 也會有 一般 直接內用容socket 而不用 socket python菜鳥真誠求教!因為左邊是所有的 2,k 1 不能整 除x,才返回true 素數的條件 只...

python求助大神,求助python大神程式設計

迴圈列表a,得到其中的每一個二級列表i。迴圈每一個二級列表i。得到列表裡的每一個值j。定義一個變數n每迴圈一次,就把n加上一個j。最後得到的n就是所有數值的和 list 1,2 3,4,5 5,6 7,8 1,2 345,44 58,64,102 70,898 11,200 30,47 105,26...