Python中的字典
一、什麼是字典?
字典是另外一種可變容器型別,並且可以儲存任意型別物件。列表元素進行修改的話,通過索引進行修改,如果當前元素的順序發生改變,此時還需要修改索引才能成功完成元素的修改。
字典是Pytho 中唯一的對映型別。
- 字典建立語法:字典的建立使用{},每個鍵值對用冒號(:)分割,每對之間用逗號分隔。
- 字典的鍵必須獨一無二,而值可以取任何資料型別,但必須是不可變的。
字典名={key1:value1,key2:value2}
- 示例
student = {'name': 'HunterArley', 'age': 24}
# 空字典
empty = {}
dict1 = dict(F=70, i=105, s=115, h=104, C=67)
print(dict1)
二、操作字典
2.1、訪問字典
字典中根據鍵訪問值,可以指定字典名和放在方括號內的鍵。
student = {'name': 'HunterArley', 'age': 24}
print(student['name'])
2.2、修改字典元素
字典元素是可以修改的,通過key找到具體元素之後,給一個新的元素值即可。
student = {'name': 'HunterArley', 'age': 24}
student['age'] = 25
print(student)
2.3、新增元素
動態的向字典中新增元素的時候,只要新增的鍵在字典中不存在,就會新增這個元素。
student = {'name': 'HunterArley', 'age': 24}
student['sex'] = '男'
print(student)
2.4、刪除元素
- 使用del語句刪除元素:del既可以刪除指定的字典元素,也可以刪除整個字典,如果不指定key,代表刪除整個字典。
del 字典名[key]
- 使用clear()方法清空整個字典:被清空的字典最後會剩下一個空的字典,而用del刪除的字典在程式當中就不存在了。
字典名.clear()
三、字典函式
函式 | 描述 | 示例 |
---|---|---|
len(dict) | 計算字典中的元素的個數 | student = {'name': 'HunterArley', 'age': 24} print(len(student)) |
str(dict) | 輸出字典,用可列印的字串表示 | student = {'name': 'HunterArley', 'age': 24} print(str(student)) |
type(variable) | 返回輸入變數的資料型別 | student = {'name': 'HunterArley', 'age': 24} print(type(student)) |
dict.fromkeys(seq[,value]) | 建立一個新字典,以序列seq中元素做字典的值,value為字典所有鍵對應的初始值 | seq=('name','age','sex') dict1=dict.fromkeys(seq)print("新字典為:",dict1) dict2=dict.fromkeys(seq,'jack’) print("新字典為:",dict2) 輸出結果:新字典為: {'name': None, 'age': None, 'sex': None}新字典為: {'name': 'jack', 'age': 'jack', 'sex': 'jack'} |
dict.get(key,default=None) | 返回指定鍵的值,如果值不在字典中返回default值 | dict1={'name':'tom','age':18} print ("age鍵的值為 : " ,dict1.get('age', 9)) print ("sex鍵的值為 : " ,dict1.get('sex', '男')) 輸出結果:age鍵的值為 : 18 sex鍵的值為 : 男 |
key in dict | 如果鍵在字典dict裡返回true,否則返回false | dict1={'name':['tom','jack'],'age':18,'sex':'男',18:19} if 'name' in dict1: print("鍵name在字典中存在") else: print("鍵name在字典中不存在") 輸出結果: 鍵name在字典中存在 |
dict.keys() | 以列表返回一個字典所有的鍵 | dict1={'name':['tom','jack'],'age':18,'sex':'男',18:19} print(dict1.keys()) 輸出結果: dict_keys(['name', 'age', 'sex', 18]) |
dict.setdefault(key,default=None) | 和get類似,但如果鍵不存在於字典中,將會新增鍵並將值設為default | dict1={'name':'tom','age':18} print ("age鍵的值為 : " ,dict1.setdefault('age', 9)) print ("sex鍵的值為 : " ,dict1.setdefault('sex', '男’)) print ("新字典為:",dict1) 輸出結果: age鍵的值為 : 18 sex鍵的值為 : 男 新字典為: {'name': 'tom', 'age': 18, 'sex': '男’} |
dict.values() | 以列表返回一個字典中的所有值 | dict1={'name':'tom','age':18} print(dict1.values()) 輸出結果: dict_values(['tom', 18]) |
'''
fromkeys()方法用於建立並返回一個新的字典,它有兩個引數:
第一個引數是字典的鍵,第二個引數是可選的,是傳入健對應的值。
'''
dict1 = {}
print(dict1.fromkeys((1, 2, 3)))
# {1: None, 2: None, 3: None}
dict2 = {}
print(dict2.fromkeys((1, 2, 3), 'Number'))
# {1: 'Number', 2: 'Number', 3: 'Number'}
dict3 = {}
print(dict3.fromkeys((1, 2, 3), ('one', 'two', 'three')))
# {1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}
'''
keys()用於返回字典中的鍵
values()用於返回字典中所有的值
items()用於返回字典中所有的鍵值對
'''
dict1 = {}
dict1 = dict1.fromkeys(range(10), '贊')
print(dict1.keys())
# dict_keys([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(dict1.values())
# dict_values(['贊', '贊', '贊', '贊', '贊', '贊', '贊', '贊', '贊', '贊'])
print(dict1.items())
#dict_items([(0, '贊'), (1, '贊'), (2, '贊'), (3, '贊'), (4, '贊'), (5, '贊'), (6, '贊'), (7, '贊'), (8, '贊'), (9, '贊')])
'''
get()方法提供了更寬鬆的方式去訪問字典項
'''
print(dict1.get(9))
# 贊
print(dict1.get(100))
# None
print(dict1.get(100, '木有'))
# 木有
# 如果不知道一個鍵是否在字典中,可以使用成員資格操作符來判斷(in 或者 not in)
print(9 in dict1)
# True
print(100 in dict1)
# False
# 如果需要清空一個字典,則使用clear()方法
dict1.clear()
print(dict1)
# {}
'''
copy()方法是複製字典(淺拷貝)
'''
a = {1: 'one', 2: 'two', 3: 'three'}
b = a.copy()
print(id(a))
# 4332198360
print(id(b))
# 4366785056
a[1] = 'four'
print(a)
# {1: 'four', 2: 'two', 3: 'three'}
print(b)
# {1: 'one', 2: 'two', 3: 'three'}
'''
pop()是給定鍵彈出對應的值;
popitem()是彈出一個項;
'''
a = {1: 'one', 2: 'two', 3: 'three', 4: 'four'}
print(a.pop(2))
# two
print(a)
# {1: 'one', 3: 'three', 4: 'four'}
print(a.popitem())
# (4, 'four')
print(a)
# {1: 'one', 3: 'three'}
'''
setdefault()在字典中找不到相應的鍵時會自動新增;
'''
a = {1: 'one', 2: 'two', 3: 'three', 4: 'four'}
print(a.setdefault(3))
# three
print(a.setdefault(5))
# None
print(a)
# {1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: None}
四、淺拷貝與深拷貝
Python中string、tuple和number是不可變物件,而dict、list等是可變物件;不可變物件在進行重新賦值的時候,實際上是將原始值丟棄,將變數指向一個新值;可變物件的可變性實質上是指更改可變物件中的子物件,比如list中的item元素的更改。
- 直接賦值:其實就是物件的引用(別名)。
- 淺拷貝:不拷貝子物件(針對子物件中的item),當子物件進行更改的時候,原始物件也會改變。
- 列表的切片操作
- list()操作
- copy()函式
- copy模組的copy()函式
- 深拷貝:會拷貝子物件,當原始物件的子物件進行更改的時候,原始物件不會改變。
- copy模組的deepcopy()函式
學海無涯苦作舟
相關文章
- Python中字典的操作Python
- Python中遍歷字典以及字典中的鍵和值Python
- python中的集合與字典Python
- Python中字典dictPython
- python-字典-如何取出字典中的所有值Python
- python中的字典是什麼Python
- Python中字典和json的區別!PythonJSON
- Python中的字典遍歷有序嗎?Python
- Python中字典使用詳解Python
- Python中判斷字典的值常用的方法!Python
- Python:字典的使用Python
- 玩轉python字典與列表(中)Python
- python 中字典dict如何新增元素?Python
- python中列表、字典和字串的互相轉換Python字串
- python進階(24)Python字典的底層原理以及字典效率Python
- python字典的小例子Python
- 【Python】字典的setdefault()方法Python
- Python字典的特性分析Python
- Python中字典dict的11種不同操作方法Python
- python中的字典賦值操作怎麼實現?Python賦值
- 【Python】Python中的圖的鄰接矩陣轉化為字典格式Python矩陣
- python-字典Python
- Python dict(字典)Python
- Redis中的字典Redis
- 什麼是字典?Python字典是可變的嗎?Python
- Python的元組()與字典{}Python
- Python字典的高階用法Python
- python3 字典的使用Python
- Python字典遍歷的陷阱Python
- Python的元組()與字典 { }Python
- 說說在 Python 中如何遍歷字典Python
- python3.9中字典合併如何操作?Python
- python字典鍵的特性及字典內建函式&方法Python函式
- Python字典dict用法Python
- 初學Python——字典Python
- Python---字典方法Python
- Python3 字典Python
- python3.2:字典Python