字典和集合
字典是python中唯一,乙個對映型別
如何建立乙個字典,如下》 dict =
>>> dict["滲透"]
'網路安全'
怎麼理解字典呢?現實生活中的字典可以通過首字母進行查詢要查詢的漢子,python也可以這樣理解,通過」:」前的元素查詢到冒號後的元素。
為什麼說字典是唯一乙個對映型別呢?看圖。
對映型別區別與序列型別,序列型別以陣列的形式儲存,通過索引的方式來獲取相應位置的值,一般索引值與對應位置資料無關係。
簡單來說就是你可以通過a找到n,但是a和n無關係。
字典的標誌性符號「{}」,用大括號來定義,字典由多個鍵及其對應的值所構成,每一對鍵值成為項,很繞口吧。不急。>>> dict =
>>> dict["滲透"]
'網路安全'
例子裡的滲透,筆記,我們就是鍵,而後面的宣傳標語就是值了。是不是好理解多了。
注意;字典的鍵必須是獨一無二的,裡面的值可以是多個型別,但必須是不可變的(如字串,數,元組)
如何宣告個空字典》 a = {}
>>> a
>>> type(a)
如例子中直接用乙個空的大括號宣告即可。
宣告字典的多種方式
dict()方法如下》 dict1 = dict((('i',23),('v',83),('i',65),('u',3),('y',343)))
>>> dict1
這裡天鈞遇到了故障,進行排查發現我定義過dicttypeerror:'dict' object is not callable 出現這種錯誤有兩種可能:1. **裡重新定義了dict,比如 dict= ,這時呼叫的是**裡定義的dict而不是python內建型別2. 取字典內容時用了()而不是[]。比如sdict("content_id"),應該是sdict["content_id"]
我的解決方法是》 del dict
>>> dict
>>> del dict
traceback (most recent call last):
file "", line 1, in
nameerror: name 'dict' is not defined
>>> dict1 = dict((('i',23),('v',83),('i',65),('u',3),('y',343)))
>>> dict1
第二種方法》 dict2 = dict(y = 23,a = 21,w = 56,u=353)
>>> dict2
對比第一種方法,第二種是比較簡潔的。這時注意鍵的位置上不能加上雙引號。否則會報錯》 dict4 = dict('y' = 23,'a' = 21,'w' = 56,'u'=353)
file "", line 1
syntaxerror: keyword can't be an expression
直接給字典賦予新的值》 dict1['h'] = 12
>>> dict1
這時咱們發現字典中的項裡的 順序跟序列是不同的,是因為字典講究對映不講順序,所以很隨意。
內建方法
formkeys()
用於建立返回乙個新的字典,他有兩個引數,第乙個引數就是字典的鍵,第二個引數是可選的,是傳入鍵對應的值。預設為none.>>> dict1.fromkeys((1,2,3))
>>> dict2 =
>>> dict2
>>> dict2 =
>>> dict2
為什麼和我們預想的不一樣呢?如結果「wocao」你大爺,所示
解釋為,他把('wocao',"臥槽","你大爺的")當成乙個值了。
key() values() itsms()
key方法用於返回字典中的鍵如下》 dict3 = {}
>>> dict3.fromkeys(range(31),'wocao')
>>> dict3.keys()
dict_keys()
咦,為什麼沒有返回鍵呢?
看》 dict3
因為fromkeys根本沒有賦予值。如何解決》 dict3 = dict3.fromkeys(range(31),'wocao')
>>> dict3
在進行操作》 dict3.keys()
dict_keys([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30])
完美values
用於返回字典裡的所有值》 dict3.values()
dict_values(['wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao', 'wocao'])
items
返回字典裡的所有項》 dict3.items()
dict_items([(0, 'wocao'), (1, 'wocao'), (2, 'wocao'), (3, 'wocao'), (4, 'wocao'), (5, 'wocao'), (6, 'wocao'), (7, 'wocao'), (8, 'wocao'), (9, 'wocao'), (10, 'wocao'), (11, 'wocao'), (12, 'wocao'), (13, 'wocao'), (14, 'wocao'), (15, 'wocao'), (16, 'wocao'), (17, 'wocao'), (18, 'wocao'), (19, 'wocao'), (20, 'wocao'), (21, 'wocao'), (22, 'wocao'), (23, 'wocao'), (24, 'wocao'), (25, 'wocao'), (26, 'wocao'), (27, 'wocao'), (28, 'wocao'), (29, 'wocao'), (30, 'wocao')])
字典很大,有的引數我們不知道在不在子彈裡,如果不存在就會報錯》 dict3[32]
traceback (most recent call last):
file "", line 1, in
keyerror: 32
get()
當查詢乙個項》 dict3.get(32)
在不在字典裡,如果不在get會返回乙個none,不會報錯
也可以用in 與not in 來判斷
清空乙個字典
clear()
前面因為幫助理解,天鈞用了乙個最簡單的方法就是把字典del了,其實還有更好的如下》 dict2
>>> dict2.clear()
>>> dict2
set()
copy()
複製字典
如下》 a =
>>> a
>>> type(a)
>>> b = a.copy()
>>> b
pop與popitem
pop是彈出值,則popitem是彈出對應的項如下》 dict4 =
>>> dict4.pop(1)
'wpcap'
>>> dict4.popitem()
(2, '342')
update
更新字典
如下》 name =
>>> name
>>> name.update(小黑= "貓")
>>> name
集合set大家看見如果認真看了有事type返回的是set,這個就是集合,看對比》 dict1 = {}
>>> dict2 =
>>> type(dict1)
>>> type(dict2)
好奇怪啊,在大括號裡如果只是一群數字話沒有體現到對映關係的,那麼就認為他是個集合。
看個有趣的例子》 dict1 =
>>> dict1
你能找到誰失蹤了嗎?
建立集合》 set1 =
>>> set2 = set([1,2,3,4,5,6,7,8])
>>> set1 == set2
true
這兩種方法是一樣的
訪問集合》 set1
>>> for each in set1:
... print(each,end = "_")
>>>1_2_3_4_5_6_7_8
將集合變成
讓集合很穩,嘿嘿嘿 frozenset>>> set1 = frozenset()
>>> set1.add(22)
traceback (most recent call last):
file "", line 1, in
attributeerror: 'frozenset' object has no attribute 'add'
Python第七章元組
python元組 python 的元組與列表類似,不同之處在於元組的元素不能修改。元組使用小括號,列表使用方括號。元組建立很簡單,只需要在括號中新增元素,並使用逗號隔開即可。元組中只包含乙個元素時,需要在元素後面新增逗號,否則括號會被當作運算子使用。元組與字串類似,下標索引從0開始,可以進行擷取,組...
Python 基礎教程(第七章)
在方法或者變數前加上雙下劃線 即可將他們變為私有 類的定義就是執行 塊 多重繼承 class calculator def calculate self,expression self.value eval expression class talker def talk self print hi...
Python核心程式設計 練習 第七章
7 1.字典方法。哪個字典方法可以用來把兩個字典合併到一起?可以通過update來更新。dict1 dict2 dict1.update dict2 dict1 7 3.字典和列表的方法。a 建立乙個字典,並把這個字典中的鍵按照字母順序顯示出來。b 現在根據已按照字母順序排序好的鍵,顯示出這個字典中...