python第七章 python教程(第七章)

2021-10-11 00:07:54 字數 4540 閱讀 4526

字典和集合

字典是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 現在根據已按照字母順序排序好的鍵,顯示出這個字典中...