python中的集合dict set

2021-07-30 05:50:54 字數 4269 閱讀 4609

dict型別

我們已經知道,list 和 tuple 可以用來表示順序集合,例如,班裡同學的名字以及他們對應的分數:

['mike','aki','jack']#姓名

[98,86,78]#對應的分數

但是如果要想通過名字找到對應的分數,使用list就不一定方便。

如果利用dict就能方便許多,在dict中名字作為key,分數作為value,dict可以通過key查詢對應的value。

d =
使用花括號 {} 表示這是乙個dict,然後按照 key: value, 寫出來即可。最後乙個 key: value 的逗號可以省略。

由於d{}是乙個集合,可以用len()計算該集合的長度。

len

(d)

訪問dict

dict可以使用key查詢對應的value,形如d[key]。這和list有點區別,list通過索引返回對應的value。

d['aki']
有點時候輸入的key可能不在集合中,那麼可以先判斷集合中是否含有所選擇的key。

if

'lee'

in d

print d[lee]

另一種方法判斷key是否在集合中的命令,d.get()。

print d.get('naren')
如果所輸入的key不在其中,那麼print結果為none。

dict特點一:查詢速度快

dict的查詢速度特別快,10個資料和1萬個資料的查詢速度都一樣。相比list,隨著資料的增多,list速度回逐漸變慢。

不過,查詢速度並不是全部,dict很占用空間,相反list占用空間很小。

list是按照key查詢value的,所以在list中key不能重複。

dict特點二:內部具有無序性

也就是說,dict中儲存的key-value序對沒有排列順序,因此不能用dict儲存有序的序對。

dict特點三:key具有不可變性

python中字串、整數、浮點數、tuple都是不可變的,都可以作為 key。但是list是可變的,就不能作為 key。

不過value是可變的,value可以用list。

('a','b'):[1,2,3]

123 : 'a'

更新dict

dict是可變的,也就是說,我們可以隨時往dict中新增新的 key-value。比如已有dict:

d = 

d['blue']=70

如果賦值的key已經存在,那麼可以替換相應的value。如:

d['mike']=80
遍歷dict

由於dict也是乙個集合,所以,遍歷dict和遍歷list類似,都可以通過 for 迴圈實現。

可以直接用for迴圈遍歷dict的key。

d = 

for key in d:

print key

由於通過 key 可以獲取對應的 value,因此,在迴圈體內,可以獲取到value的值。如:

d = 

for key in d:

print key + ':', d[key]

2.

set型別

dict的作用是建立一組 key 和一組 value 的對映關係,dict的key是不能重複的。

有的時候,我們只想要 dict 的 key,不關心 key 對應的 value,目的就是保證這個集合的元素不會重複,這時,set()更適合。

set內含有一系列元素,set中元素無重複、無序且具有不變性,這點和dict中的key很想像。

建立乙個set,需要用list作為元素。

s = set(['a', 'b', 'c'])
例:請用set表示班裡的4位同學:

adam, lisa, bart, paul

s = set([adam, lisa, bart, paul])
訪問set

已經學過的list通過索引訪問元素,dict通過其中的key訪問,訪問set一般用來判斷某元素是否在set中,而且由於set是無序集合,所以無法用索引,且set中的元素是list,也無法用key。

因此,我們可以用in來判斷元素是否在set中。

s = set([adam, lisa, bart, paul])

'bill'

in s #false

'adam'

in s #true

'adam'

in s #false

由上還可得出,set不能識別大小寫。

例:假設我們讓使用者輸入星期一至星期日的某天,如何判斷使用者的輸入是否是乙個有效的星期呢

weekdays = set(['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'])

x = '???'

# 使用者輸入的字串

if x in weekdays:

print

'input ok'

else:

print

'input error'

遍歷set

由於 set 也是乙個集合,所以,遍歷 set 和遍歷 list 、dict類似,都可以通過 for 迴圈實現。

例:請用 for 迴圈遍歷如下的set,列印出 name: score 來。

s = set([('adam', 95), ('lisa', 85), ('bart', 59)])

for x in s:

print x[0]+':',x[1]

更新set

由於set儲存的是一組不重複的無序元素,因此,更新set主要做兩件事:

一是把新的元素新增到set中,二是把已有元素從set中刪除。

新增元素時,用set的add()方法,如果新增的元素已經存在於set中,add()不會報錯,但是不會加進去了。

s = set([1,2,3])

s.add(4)

print s

刪除set中的元素時,用set的remove()方法,如果刪除的元素不存在set中,remove()會報錯。

s = set([1,2,3,4])

s.remove(4)

print s

由於remove()用時可能會報錯,用remove前需要判斷。add可直接使用。

例:針對下面的set,給定乙個list,對list中的每乙個元素,如果在set中,就將其刪除,如果不在set中,就新增進去。

s = set([『adam』, 『lisa』, 『paul』])

l = [『adam』, 『lisa』, 『bart』, 『paul』]

s = set(['adam', 'lisa', 'paul'])

l = ['adam', 'lisa', 'bart', 'paul']

for name in l:

if name in s:

s.remove(name)

else:

s.add(name)

print s

總結

dict&set

1.作為python中的集合,有:

dict

set(list)

2.dict中的key與set中的元素都具有的三個特點:

無序性、無重複性和不變性。

3.集合的訪問、遍歷和更新

dict訪問 通過key; set訪問,用in做判斷

dict set 遍歷 通過for迴圈

dict更新 :新增、替換 ;set更新:新增(add)、刪除(remove)

詳細參考:python入門 慕課網

Python中的集合

python中的集合 一 定義 集合是由一組元素組成。集合中的元素只包含值。需注意兩點 1 集合中的元素是無序的。2 每個元素是唯一的。二 建立集合 語法 set name set 新增 用set name.add 填充集合 語法 set name 三 獲取資訊 因為集合裡面沒有索引值所以判斷某個元...

Python中的集合

集合 set 是乙個無序的不重複元素序列。可以使用大括號 或者 set 函式建立集合,注意 建立乙個空集合必須用 set 而不是 因為 是用來建立乙個空字典。建立集合 s set test set hello set test set test set hello set test 由此可見集合中的...

python中的集合

集合 和數學概念中的結合類似,集合裡面的元素不可重複,所以可以用來做快速去重。集合裡面的元素不可重複s print s,type s 列印出來重複多次的元素只會列印一次定義乙個空集合s1 如果這樣定義,那麼預設情況下是dict print type s1 這時s1的資料型別是dict s2 set ...