-
et提供方法判斷兩個set之間的關系,比如兩個集合set,判斷其中一個set是否為另外一個set的子集或者超集。
s1?=?set([1,?2,?3,?4,?5]) s2?=?set([1,?2,?3,?4,?5,?6,?7,?8,?9]) #?判斷s1是否為s2的子集 s1.issubset(s2)?#?==>?True #?判斷s2是否為s1的超集 s2.issuperset(s1)?#?==>?True
查看全部 -
除了使用remove()方法刪除元素以外,還可以使用discard()方法刪除元素,并且,和remove()不同的是,當元素不存在時,使用discard()并不會引發錯誤,所以使用discard()是更加高效的一個方法。
查看全部 -
set提供了remove()方法允許我們刪除set中的元素。
用remove()方法,我們需要格外小心,需要提前判斷要remove()的元素是否在set里面,確保存在后,再進行remove。
查看全部 -
只想要 dict 的 key,不關心 key 對應的 value,目的就是保證這個集合的元素不會重復,這時,set就派上用場了。
set和list類似,擁有一系列元素,但是set和list不一樣,set里面的元素是不允許重復的,而list里面可以包含相同的元素;set與list的另一個區別是,set里面的元素是沒有順序的。查看全部 -
dict提供clear()函數,可以直接清除dict中所有的元素。
查看全部 -
dict提供keys()函數,可以返回dict中所有的key
dict提供values()函數,可以返回dict中所有的value。
查看全部 -
Python3.5之前,dict中的元素是無序的,也就是dict中元素的插入順序和打印順序未必一致,但是在Python3.6、Python3.7版本中,卻得到了有序的結果
dict是有序的,但是一般而言,為了避免不必要的誤解,一般在需要有序的dict時,我們會使用一種叫做Ordereddict的字典,來確保有序。
查看全部 -
dict的第一個特點是查找速度快,無論dict有10個元素還是10萬個元素,查找速度都一樣。而list的查找速度隨著元素增加而逐漸下降。
不過dict的查找速度快不是沒有代價的,dict的缺點是占用內存大,還會浪費很多內容,list正好相反,占用內存小,但是查找速度慢。查看全部 -
使用keys()方法,可以返回dict的所有key
查看全部 -
dict提供便捷的
pop()
方法,允許我們快速刪除元素,pop()方法需要指定需要刪除的元素的key,并返回對應的value查看全部 -
當key不存在時,往dict中添加對應的key: value元素。
當key存在時,會更新dict,用新的value替換原來的value
查看全部 -
dict提供通過key找到對應value的功能,通過
d[key]
的形式,就可以得到對應的value。dict本身提供get方法,把key當作參數傳遞給get方法,就可以獲取對應的value,當key不存在時,也不會報錯,而是返回None。
print(d.get('Alice'))?#?==>?45 print(d.get('Dodo'))?#?==>?None
因為通過get方法在代碼實現上更加簡單,且不會引起錯誤,因此更加推薦使用get方法來獲取dict的元素
查看全部 -
在dict中,每一項包含一個key和一個value,key和value是一一對應的,在解決上面的問題中,我們可以使用名字作為key,成績作為value,那么dict的定義如下:
d?=?{ ????'Alice':?45, ????'Bob':?60, ????'Candy':?75, ????'David':?86, ????'Ellena':?49 }
在定義里,我們使用花括號
{}
表示這是一個dict,然后key和value之間使用冒號:
分割,并且每一組key:value
的最后,以逗號,
表示這一組的結束。
我們也可以使用以下的方式定義一個dict。d?=?dict() print(d)?#?==>?{}
查看全部 -
T?=?(1,?'CH',?[3,?4]) L?=?T[2] print(L)?#?==>?[3,?4] #?嘗試替換L中的元素 L[1]?=?40 print(L)?#?==>?[3,?40] print(T)?#?==>?(1,?'CH',?[3,?40])
這個時候,我們發現,元組T中的第三個元素已經成功被改變了,這就有悖前面的定義,元組是不可改變的。那么這到底是為什么呢?
這是因為雖然tuple中的list元素改變了,但是tuple本身指向的list仍然是同一個list,list本身并沒有改變,改變的只是list里面的一個元素,這是tuple所約束不到的范圍查看全部 -
改變優先級我們是通過
()
來實現的,這和元組的定義有沖突,這就解釋了前面只有一個元素的元組,為什么打印出來卻得到一個數字的結果了。
因為()
既可以表示tuple,又可以作為括號表示運算時的優先級,結果(1)
被Python解釋器計算出結果 1,導致我們得到的不是tuple,而是整數 1。
因此,要定義只有一個元素的tuple,需要在元素后面添加一個逗號,
。查看全部
舉報