python 字典 dictionary
Dictionary 字典
字典是python中唯一的映射類型,采用鍵值對(key-value)的形式存儲數據。python對key進行哈希函數運算,根據計算的結果決定value的存儲地址,所以字典是無序存儲的,且key必須是可哈希的。可哈希表示key必須是不可變類型,如:數字、字符串、元祖。
字典是除列表外python中最靈活的內置數據結構類型。列表是有序的對象結合,字典是無序的對象集合。兩者之間的區別在於:字典當中的元素是通過建來存取的,而不是通過偏存取。
創建字典:
>>> dic1={‘name‘:‘alex‘,‘age‘:‘27‘,‘sex‘:‘male‘}
>>> dic2=dict(((‘name‘,‘alex‘),(‘age‘,‘27‘)))
>>> print dic1
{‘age‘: ‘27‘, ‘name‘: ‘alex‘, ‘sex‘: ‘male‘}
>>> print dic2
{‘name‘: ‘alex‘,‘age‘:‘27‘}
>>>
備註:鍵值對的key必須要是不可改變的數據類型,而value則可以是不同的數據類型,如數字,字符串,列表,元祖,甚至包括字典等。
不可變數據類型:整型、字符串、元祖
可變數據類型:列表、字典
操作字典:
>>> dic1={‘name‘:‘alex‘,‘age‘:‘27‘,‘sex‘:‘male‘}
新增記錄:
>>> dic1["job"]=‘it‘ 向字典中添加新的鍵值對
>>> print dic1
{‘job‘: ‘it‘, ‘age‘: ‘27‘, ‘name‘: ‘alex‘, ‘sex‘: ‘male‘}
>>> dic1.setdefault(‘age‘,34) 使用setdefault函數,如果字典中已經存在age記錄,則此命令不生效,也不會修改已經存在的鍵值對。如果不存在此key,則添加到字典中。
‘27‘ setdefault函數執行完成之後,默認會有返回值輸出,這個值就是字典中對應的key的valule。
>>> print dic1
{‘job‘: ‘it‘, ‘age‘: ‘27‘, ‘name‘: ‘alex‘, ‘sex‘: ‘male‘}
查詢字典:
>>> print dic1
{‘job‘: ‘it‘, ‘age‘: ‘27‘, ‘name‘: ‘alex‘, ‘sex‘: ‘male‘}
>>> dic1["name"] 通過字典中的key來查詢對應的valule值。
‘alex‘
>>> dic1.has_key("age") has_key()方法用來查詢子弟愛你中是否存在這個key,返回值為False/True 。
True
>>> dic1.items() items()方法用來獲取字典中所有的鍵值對。
[(‘job‘, ‘it‘), (‘age‘, ‘27‘), (‘name‘, ‘alex‘), (‘sex‘, ‘male‘)]
>>> dic1.keys() keys()方法用來獲取字典中所有的keys。
[‘job‘, ‘age‘, ‘name‘, ‘sex‘]
>>> dic1.values() values()方法用來獲取字典中所有的values。
[‘it‘, ‘27‘, ‘alex‘, ‘male‘]
>>> dic1.clear() clear()方法用來清空字典數據。
>>>dic1.get(‘age‘) get()方法用於獲取字典中key對應的值,如果沒有這個key,也不會給出任何報錯。
實例:
>>> for key,value in dic1.items(): for循環可以指定兩個變量,這樣key可以獲取字典對應的key,value可以獲取字典對應的values。
... print(key,value)
...
(‘job‘, ‘it‘)
(‘age‘, ‘27‘)
(‘name‘, ‘alex‘)
(‘sex‘, ‘male‘)
修改字典記錄:
>>> dic1["age"]=34 修改字典key對應的values值,和列表,元祖等一樣,直接對應的修改即可。
>>> print(dic1)
{‘job‘: ‘it‘, ‘age‘: 34, ‘name‘: ‘alex‘, ‘sex‘: ‘male‘}
>>> dic2[‘age‘]=38
>>> dic2
{‘age‘: 38, ‘name‘: ‘alex‘} age=38
>>> dic1
{‘job‘: ‘it‘, ‘name‘: ‘alex‘, ‘age‘: ‘27‘, ‘sex‘: ‘male‘} age=27
>>> dic1.update(dic2) update()方法會將dic2裏面的數據更新到dic1中,如果有相同的key,dic2的的值會覆蓋dic1裏面的值。
>>> dic1
{‘job‘: ‘it‘, ‘name‘: ‘alex‘, ‘age‘: 38, ‘sex‘: ‘male‘} 執行完update之後,dic1裏面的age對應的value值變成了38。
>>> dic2
{‘age‘: 38, ‘name‘: ‘alex‘} dic2中的age值沒有發生變化。
刪除字典記錄:
>>> del dic1[‘name‘] del刪除dic1中的name記錄,del刪除的是鍵值對。
>>> del dic1 這裏是刪除整個字典,從內存中刪除。
>>> dic1.clear() clear()用來清空字典,返回一個空字典。
>>> dic1.pop(‘age‘) pop()方法用來刪除字典中的一個key,pop方法有個返回值,這裏返回的是age對應的values值。
>>> dic1.popitem() popitem()刪除的是字典中的第一個鍵值對,沒有參數,這裏的返回值是一組鍵值對。
python 字典 dictionary