Python 學習筆記(十)Python集合(一)

2022-07-19 22:36:27 字數 2804 閱讀 7189

回顧

int/float/str/list/tuple/dict

整數型和浮點型是不可變的,不是序列

字串是不可變的,是序列

列表是可變的,是序列

元組是不可變的,是序列

字典是可變得,但不是序列

集合的基本概念

集合是基本的數學概念,它是集合論的研究物件,指具有某種特定性質的事物的總體,(在最原始的集合論─樸素集合論─中的定義,集合就是「一堆東西」。)集合裡的事物(「東西」),叫作元素。若然 x 是集合 a 的元素,記作 x ∈ a。

建立集合的方法

方法1:使用花括號{} ;用花括號所包裹的物件,就是乙個集合

方法2:set()函式 一般使用這個函式建立集合

集合的元素沒有順序,不可重複

集合是不可雜湊的

1 >>>  #使用花括號建立集合

2 set(['

python

', 1])

3 >>> type()4'

set'>

5 >>> set("

python")

6 set(['

h', '

o', '

n', '

p', '

t', 'y'

])7 >>> s= set("

python

") #使用set()建立集合

]) #集合的元素沒有順序

15 >>> s3=set([2,2,2,2,2])

16 >>>s3 #集合元素不可重複

17 set([2])

18 >>>

可雜湊與不可雜湊

就是在其生存期內,不可變的物件,是可雜湊的,反之,可變的就是不可雜湊的

python中所有不可變的都是可雜湊的,如數字、字串、元組

另列表、字典都是可變的,都是不可雜湊的

在字典中的key鍵必須是可雜湊的,即不可變的物件

在集合中,集合的元素必須是可雜湊的,也就是說集合的元素必須是不可變物件

所以說用列表作為集合的元素,就報錯,因為列表是不可雜湊的物件

1 >>> lst =[[1,2,3],"

python

"] #用列表作為引數,建立乙個集合,報錯list 是不可hash的

2 >>> s =set(lst)

3traceback (most recent call last):

4 file "

", line 1, in

5 typeerror: unhashable type: '

list

'6 >>> d= #建立乙個字典,key為列表,報錯list 是不可hash的

7traceback (most recent call last):

8 file "

", line 1, in

9 typeerror: unhashable type: '

list

' #list 是不可雜湊的

10 >>>

集合與列表之間的轉換

set() list() 

1 >>> lst=[1,2,3]

2 >>> s =set(lst) #將列表轉換成集合

3 >>>s

4 set([1, 2, 3])

5 >>> lst2 =list(s) #將集合轉換為列表

6 >>>lst2

7 [1, 2, 3]

8 >>> a =[1,2,2,3,3,6,6,8,9,0,0] #去除列表中的重複項,可使用set()集合

9 >>> s =set(a)

10 >>>s

11 set([0, 1, 2, 3, 6, 8, 9])

12 >>> a =list(s) #去除重複後,再轉換為列表list

13 >>>a

14 [0, 1, 2, 3, 6, 8, 9]

15 >>>s

16 set([0, 1, 2, 3, 6, 8, 9])

17 >>>hash(s) #返回hash值,也可判斷是否可雜湊,報錯不可雜湊,否則返回hash值

18traceback (most recent call last):

19 file "

", line 1, in

20 typeerror: unhashable type: '

set'

21 >>> hash(1)

22 1

建立不可變集合

frozenset() 建立不可變集合,是可雜湊的

1 >>>a

2 [0,1,2,3,6,8,9]

3 >>> s2 =frozenset(a)

4 >>>type(s2)5'

frozenset

'>

6 >>>hash(s2)

7 2096340863

8 >>>

Python學習筆記(十)

mylab 專案實戰 1 在templates中乙個index.html我需要引入當前資料夾中的另乙個網頁,我直接在index的 中引入 html無效 最後,我在這個專案的主目錄下的urls中進行設定,可行 2 在呼叫網頁的時候,進行views設定,就已經把處理函式給選定了 直接在views,用re...

python學習筆記十

字典遍歷 集合函式 copy僅拷貝物件本身,而不對中的子物件進行拷貝,故對子物件進行修改也會隨著修改。dict1 dict2 dict1 dict3 dict1.copy dict1 user root dict1 num remove 1 print dict1 print dict2 print...

Python學習筆記(十) Python文件

以mark lutz著的 python學習手冊 為教程,每天花1個小時左右時間學習,爭取兩周完成。寫在前面的話 2013 7 20 20 00 學習筆記 1,python以 開始 注釋。python也支援可自動附加在物件上的文件,而且可以在執行時檢視。這類注釋是寫成字串,放在模組檔案 函式 類語句的...