計算機二級python考試考點五(2):組合數據類型(集合、字典)

集合

  • 集合類型在二級考試中不是重點,但是在衆多語言中,有集合概念的語言還真的不多。在一些實際問題的時候,集合可以很好地解決一些問題。
  • 集合的概念與數學中的集合的概念完全一致,具有以下的特點:
    • 無序
    • 唯一
    • 確定的
  • 集合無索引與切片,因爲它是無序的。

創建一個集合

T1 = {1,2,3,5,6,6,7,8,0}#創建一個集合時,即使有相同的元素,也不會重複出現。
print(type(T1))
print(T1)

# 或者,使用set()函數也可以創建一個空集合。
T2= set()
print(type(T2))
<class 'set'>
{0, 1, 2, 3, 5, 6, 7, 8}
<class 'set'>

集合的運算:

操作符及其運算 描述
STS-T 差集
S&amp;TS\&amp;T 交集
SS^TT 包含非共同元素
$S T$

集合的函數與方法:

函數或者方法 描述
S.add(x) 添加一個元素x
S.remove(x) 如果元素x在S中,移除該元素;若非,產生異常。
S.clear() 清光所有元素
len(S) 返回集合元素的個數
x in S 判斷x是S的元素,是則返回True,否則False
x not in S 同理,若x不在則返回True,否則False

字典

  • 在字典中最大的特點就是鍵值對,所謂鍵值對,就是每一個值都有一個鍵來對應這就是鍵值對。
  • 實際上是值所在的集合和鍵所在的集合形成的雙射。
  • 也可以理解成爲鍵值對的集合,或者集合是沒有鍵的字典。
  • 列表可以看作鍵爲0、1、…的字典。

字典的定義:

與集合一樣都是使用{}來定義。

D = {'201801':'小明','201802':'小花','201803':"小王"}     
print(D)

D2 = {'201801':'小明','201802':'小花','201803':"小王",'201801':'小明'}       # 這個例子說明了集合和字典的關係
print(D2)

D3 = {'201801':'小明','201802':'小花','201803':"小王",'201801':'小狗'}       # 鍵相同時,取用後出現的鍵做對應的值
print(D3)

D4 = dict()      # 創建一個空字典
D5 = {}          # 創建一個空字典,而不是集合
print(type(D4))
print(type(D5))
{'201801': '小明', '201802': '小花', '201803': '小王'}
{'201801': '小明', '201802': '小花', '201803': '小王'}
{'201801': '小狗', '201802': '小花', '201803': '小王'}
<class 'dict'>
<class 'dict'>

字典的索引

使用D[<鍵>]索引

D['201801']
'小明'

字典的操作函數:

函數 描述
len(D) 個數
min(D) D中鍵的最小值,前提是索引元素可以比較
max(D) D中鍵的最大值,前提是索引元素可以比較

字典的方法

方法 描述
d.keys() 返回所有的鍵
d.values() 返回所有的值
d.items() 返回所有的鍵值對
d.get(key,default) 返回key鍵所對應的元素,如不存在key,返回後面的default
d.pop(key,default) 返回清除key鍵所對應的元素,如不存在key,返回後面的default
d.popitem() 隨機取出並且清除一個鍵值對,以元組形式返回。
d.clear() 清空字典

例子:

d = {}
names = ["小明",'啊狗','阿貓','老王']        #通過索引的方法逐個添加元素
for i in range(4):
    d['20180{}'.format(i)] = names[i]
print(d)
{'201800': '小明', '201801': '啊狗', '201802': '阿貓', '201803': '老王'}
d.keys()
dict_keys(['201800', '201801', '201802', '201803'])
d.values()
dict_values(['小明', '啊狗', '阿貓', '老王'])
d.items()
dict_items([('201800', '小明'), ('201801', '啊狗'), ('201802', '阿貓'), ('201803', '老王')])
d.get("201801")
'啊狗'
d.get("2018","查詢無果")
'查詢無果'
d.pop("2018","查詢無果")
'查詢無果'
d.pop("201800")
print(d)
{'201801': '啊狗', '201802': '阿貓', '201803': '老王'}
d.popitem()
print(d)
{'201801': '啊狗', '201802': '阿貓'}
d.clear()
print(d)
{}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章