python學習筆記——集合與字典

1. 集合的基本概念

集合類型和數學集合中的概念一致,即包含0個或多個數據項的無序組合。集合元素不可重複,集合類型只能是固定的數據類型。

python編譯器中界定固定數據類型與否主要考察類型能否進行哈希運算。python中提供了一種同名的具體數據類型——集合(set)

由於集合是無序組合,他沒有索引和位置的概念,不能分片,集合中元素可以動態增加或刪除。
集合用大括號表示,可以用賦值語句生成一個集合,例如:

>>> s = {1,'dream',2,2,(3,4)}
>>> s
{1, 2, (3, 4), 'dream'}

通過集合元素的獨一無二性,可以過濾掉重複元素,這也是集合的很大一個用處。

1.1 set(x)函數

set(x)函數可以用於生成集合,輸入的參數可以是任何組合數據類型,返回結果是一個無重複且排序任意的集合。

1.2 集合類型的10個操作函數

操作函數及方法 描述
s.add(x) 如果數據項x不在集合中,則增加x到s中
s.clear() 移除s中所有的數據項
s.copy() 返回集合s的一個副本
s.pop() 隨機返回s中的一個元素,如果集合爲空,返回KeyError異常
s.discard(x) 如果x在集合中移除該元素,不在不報錯
s.remove(x) 如果x在集合中移除該元素,不在返回KeyError異常
s.isdisjoint(T) 如果s和T沒有相同的元素,返回True
len(s) 返回s中元素的個數
x (not) in s x(不是)是s的元素,返回相應的判斷

2. 字典的基本概念

通過任意鍵信息查找一組數據中 值的信息的過程叫映射,python語言中通過字典實現映射。python語言中的字典可以用大括號建立,建立模式如下:

{<1>:<1>,<2>:<2>,...,<鍵n>:<值n>}

由於大括號表示集合,因此字典類型和集合有着類似的性質,即鍵值對之間沒有順序且不能重複。

2.1 字典的索引

字典中鍵值對的訪問模式如下,採用中括號格式:
<> = <字典變量>[<>]
例如:
>>> D = {'China':'BeiJing','France':'Paris','USA':'Washington DC'}
>>> D['China']
'BeiJing'

字典中對某個鍵值的修改可以通過中括號的訪問和賦值實現,例如:

>>> D['USA']='NK'
>>> print(D)
{'China': 'BeiJing', 'France': 'Paris', 'USA': 'NK'}

總結起來,字典是儲存可變數量鍵值的數據結構,鍵和值可以是任意數據類型,包括程序自定義的類型。python字典的效率非常高,可以儲存幾十萬項的內容。

2.2 字典的操作

可以直接使用大括號創建一個空的字典,並通過中括號向其中增加元素。

>>> d = {}
>>> d['2^2']=4
>>> print(d)
{'2^2': 4}

注:直接使用大括號生成的是字典,生成空集合需要使用函數set()

函數和方法 描述
d.keys() 返回所有的鍵的信息
d.values() 返回所有值的信息
d.items() 返回所有的鍵值對
d.get(key,default) 鍵存在返回相應值,否則返回默認值
d.pop(key,default) 鍵存在返回相應值,同時刪除鍵值對,否則返回默認值
d.popitem() 隨機從字典中取出一個鍵值對,以元組(key,value)形式返回
d.clear() 刪除所有的鍵值對
del d[key] 刪除字典中某個特定的鍵值對
key in d 如果鍵在字典中返回True,不存在返回False

與其他組合類型一樣,字典可以通過for-in語句對其元素進行遍歷,語法結構如下:

for <變量名> in <字典名>:
	<語句塊>

由於鍵值對中的鍵相當於索引,因此,for循環返回變量名是字典的索引值。如果需要獲得鍵對應的值,可以在語句塊中通過get()方法獲得。

>>> D = {'China':'BeiJing','France':'Paris','USA':'Washington DC'}
>>> for key in D:
	print(key)

	
China
France
USA

2.3 字典小結

字典是實現鍵值對映射的數據結構,它採用固定數據類型的鍵數據作爲索引,十分靈活,具有處理任意長度、混合類型鍵值對的能力。爲了更好地認識和使用字典,請理解如下一些基本原則。
(1)字典是一個鍵值對的集合,該集合以鍵爲索引,一個鍵信息只對應一個值信息。
(2)字典中元素以鍵信息爲索引訪問。
(3)字典長度是可變的,可以通過對鍵信息賦值實現增加或修改鍵值對。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章