1. 程式人生 > >python-11 資料結構 - 字典

python-11 資料結構 - 字典

字典

建立:
1.字面量
	>>> {"you":90,"liang":80}
	{'you': 90, 'liang': 80}

2.
	通過dict函式建立:
	
	2.1 用列表來建立
	>>> dict1 = dict([["you",90],["liang",80],["zhong",70] ])
	>>> dict1
	{'you': 90, 'liang': 80, 'zhong': 70}
	
	2.2 元組
	>>> dict2 = dict((("you",90),("liang",80),("zhong",70)))
	>>> dict2
	{'you': 90, 'liang': 80, 'zhong': 70}
	
	
	2.3 zip
	>>> dist3 = dict(zip(["you","liang","zhong"],[90,80,70]))
	>>> dist3
	{'you': 90, 'liang': 80, 'zhong': 70}
	
	2.4  賦值方式
	>>> dict7 = dict(a="aaa",b="ddd")
	>>> dict7
	{'a': 'aaa', 'b': 'ddd'}


3.通過fromkeys
	>>> dict4 ={}.fromkeys(["you","liang","zhong"],'大於60')
	>>> dist4
	{'you': '大於60', 'liang': '大於60', 'zhong': '大於60'}
	
	
	預設為空
	>>> dict4 ={}.fromkeys(["you","liang","zhong"])
	>>> dict4
	{'you': None, 'liang': None, 'zhong': None}


4. 推導式
	>>> dict7 = {n:n**2  for n in range(1,5)}
	>>> dict7
	{1: 1, 2: 4, 3: 9, 4: 16}

字典的操作

1.查詢:

	鍵值查詢
	>>> dict1
	{'you': 90, 'liang': 80, 'zhong': 70}
	>>> dict1.get("you")
	90
	>>> dict1.get("cha")
	>>> dict1.get("cha","鍵不存在")
	'鍵不存在'
	>>> dict1.get("you","鍵不存在")
	90
	
	類似下標的查詢
	>>> dict1["you"]
	90
2.常用函式
	>>> dict1.items()
	dict_items([('you', 90), ('liang', 80), ('zhong', 70)])
	>>> dict1.keys()
	dict_keys(['you', 'liang', 'zhong'])
	>>> dict1.values()
	dict_values([90, 80, 70])

3.遍歷輸出:
>>> for i in dict1.keys():
	print(i)

you
liang
zhong

可以預設
>>> for i in dict1:
	print(i)

	
you
liang
zhong

3.成員函式
>>> "you" in dict1
True

4.增刪改
>>> dict1["you"] = 100
>>> dict1
{'you': 100, 'liang': 80, 'zhong': 70, 'cha': '10'}

5.合併字典
>>> dict2 = {'a':10}
>>> dict1
{'you': 100, 'liang': 80, 'zhong': 70, 'cha': '10'}
>>> dict2
{'a': 10}
>>> dict1.update(dict2)
>>> dict1
{'you': 100, 'liang': 80, 'zhong': 70, 'cha': '10', 'a': 10}
>>> dict2
{'a': 10}


刪除元素:

del()   
>>> del(dict1["you"])
>>> dist1
>>> dict1
{'liang': 80, 'zhong': 70, 'cha': '10', 'a': 10}

del語句
>>> dict2
{'a': 10}
>>> del dict2
>>> dict2
Traceback (most recent call last):
  File "<pyshell#71>", line 1, in <module>
    dict2
NameError: name 'dict2' is not defined

pop():
>>> dict1.pop("liang")
80
>>> dict1
{'zhong': 70, 'cha': '10', 'a': 10}

popitem()
>>> dict1
{'zhong': 70, 'cha': '10', 'a': 10}
>>> dict1.popitem()
('a', 10)
>>> dict1
{'zhong': 70, 'cha': '10'}

>>> dict1
{'zhong': 70, 'cha': '10'}
>>> dict1.clear()
>>> dict1
{}
字典存在,只是將字典清空