五、Python基本資料型別五:字典型別
·字典就是一系列的標籤和繫結在標籤上的資料值對的集合
·字典容器中儲存著一系列的key-value對
·字典中通過 key 來訪問 value
·鍵必須是唯一的,但值則不必。
·值可以取任何資料型別,但鍵必須是不可變的
1、字典的建立
·使用花括號{}法
dict_a = {'a':1, 'b':2, 12:'abc', (10, 20):[1, 2, 3]} dict_a #{'b': 2, 12: 'abc', (10, 20): [1, 2, 3], 'a': 1}
·使用dict()方法,可以傳入多個列表或元組引數作為
dict_a = [('celery', 1.58), ('brocoli', 1.29), ('lettuce', 2.19)] dict_b = [['BMW', 8.5], ['BENS', 8.3], ['AUDI', 7.9]] dict_1 = dict(dict_a) dict_2 = dict(dict_b) print(dict_1, '\n', dict_2) #{'lettuce': 2.19, 'celery': 1.58, 'brocoli': 1.29}#{'AUDI': 7.9, 'BENS': 8.3, 'BMW': 8.5}
dict_a = dict(hello = 'world', abc = [1, 3], acd = (10,)) dict_a #{'acd': (10,), 'hello': 'world', 'abc': [1, 3]}
2、字典的基本用法
(1)訪問字典元素
·通過key訪問value
dict_a = {'語文':89, '數學':98, '英語':98} dict_a['語文'] #89
(2)修改字典元素
dict_a = {'語文':89, '數學':98, '英語':98} dict_a['語文'] = 92 dict_a #{'英語': 98, '語文': 92, '數學': 98}
(3)增加字典元素
·為不存在的key賦值即可增加字典元素,為存在的key賦值即可修改字典元素
dict_a = {'語文':89, '數學':98, '英語':98} dict_a #{'英語': 98, '語文': 89, '數學': 98} dict_a['物理'] = 100 dict_a #{'英語': 98, '物理': 100, '語文': 89, '數學': 98}
(4)刪除字典元素
·使用del語句
dict_a = {'語文':89, '數學':98, '英語':98} del dict_a['語文'] # 刪除鍵是'語文'的條目 dict_a #{'英語': 98, '數學': 98}
dict_a = {'語文':89, '數學':98, '英語':98} dict_a.clear() # 清空詞典所有條目 dict_a #{}
dict_a = {'語文':89, '數學':98, '英語':98} del dict_a # 刪除詞典 dict_a ''' Traceback (most recent call last): File "<pyshell#42>", line 1, in <module> dict_a NameError: name 'dict_a' is not defined '''
(5)判斷指定元素是否存在
·使用in或not in關鍵字判斷是否存在指定的key
dict_a = {'語文':89, '數學':98, '英語':98} '語文' in dict_a #True '物理' in dict_a #False
3、使用字典格式化字串
·在格式化字串時,可以在字串模板中按 key 指定變數,然後通過字典為字串模板中的 key 設定值
# 字串模板中使用key temp = '教程是:%(name)s, 價格是:%(price)010.2f, 出版社是:%(publish)s' book = {'name':'Python基礎教程', 'price': 99, 'publish': 'C語言中文網'} # 使用字典為字串模板中的key傳入值 print(temp % book) #教程是:Python基礎教程, 價格是:0000099.00, 出版社是:C語言中文網 book = {'name':'C語言小白變怪獸', 'price':159, 'publish': 'C語言中文網'} # 使用字典為字串模板中的key傳入值 print(temp % book) #教程是:C語言小白變怪獸, 價格是:0000159.00, 出版社是:C語言中文網
4、字典的常用方法
(1)update()方法:更新己有的字典
dict_a = {'語文':89, '數學':98, '英語':98} dict_a.update({'語文':92, '物理':100}) dict_a #{'英語': 98, '物理': 100, '語文': 92, '數學': 98}
(2)items()、keys()、values()方法:分別用於獲取字典中的所有 key-value 鍵值對、所有 key、所有 value,可通過 list() 函式把它們轉換成列表
dict_a = {'語文':89, '數學':98, '英語':98} dict_a.items() #dict_items([('英語', 98), ('語文', 89), ('數學', 98)])
dict_a = {'語文':89, '數學':98, '英語':98} dict_a.keys() #dict_keys(['英語', '語文', '數學'])
dict_a = {'語文':89, '數學':98, '英語':98} dict_a.values() #dict_values([98, 89, 98])
dict_a = {'語文':89, '數學':98, '英語':98} list_a = list(dict_a.values()) list_a #[98, 89, 98] list_a[1] #89 list_b = list(dict_a.items()) list_b #[('英語', 98), ('語文', 89), ('數學', 98)] list_b[1] #('語文', 89)
(3)setdefault()方法:返回指定 key 對應的 value;如果該 key-value 對存在,則直接返回該 key 對應的 value;如果該 key-value 對不存在,則先為該 key 設定預設的 value,然後再返回該 key 對應的 value
dict_a = {'語文':89, '數學':98, '英語':98} # 設定預設值,該key在dict中不存在,新增key-value對 print(dict_a.setdefault('物理', 100)) #100 dict_a #{'英語': 98, '物理': 100, '語文': 89, '數學': 98} # 設定預設值,該key在dict中存在,不會修改dict內容 print(dict_a.setdefault('語文', 100)) #89 dict_a #{'英語': 98, '物理': 100, '語文': 89, '數學': 98}
(4)fromkeys()方法:使用給定的多個 key 建立字典,這些 key 對應的 value 預設都是 None;也可以額外傳入一個引數作為預設的 value
# 使用列表建立包含2個key的字典 a_dict = dict.fromkeys(['a', 'b']) print(a_dict) # {'a': None, 'b': None} # 使用元組建立包含2個key的字典 b_dict = dict.fromkeys((13, 17)) print(b_dict) # {13: None, 17: None} # 使用元組建立包含2個key的字典,指定預設的value c_dict = dict.fromkeys((13, 17), 'good') print(c_dict) # {13: 'good', 17: 'good'}
(5)常用方法小結
序號 |
函式及描述 |
例項 |
1 |
len(dict) |
|
2 |
str(dict) |
|
3 |
type(variable) |
|
4 |
radiansdict.clear() |
|
5 |
radiansdict.copy() |
|
6 |
radiansdict.fromkeys() |
|
7 |
radiansdict.get(key, default=None) |
|
8 |
key in dict |
|
9 |
radiansdict.items() |
|
10 |
radiansdict.keys() |
|
11 |
radiansdict.setdefault(key, default=None) |
|
12 |
radiansdict.update(dict2) |
|
13 |
radiansdict.values() |
|
14 |
pop(key[,default]) |
|
15 |
popitem() |