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