基礎數據類型:(字典dict)


字典是python中唯一的映射類型,采用鍵值對(key-value)的形式存儲數據。python對key進行哈希函數運算,根據計算的結果決定value的存儲地址,所以字典是無序存儲的,且key必須是可哈希的。可哈希表示key必須是不可變類型,如:數字、字符串、元組。

  字典(dictionary)是除列表意外python之中最靈活的內置數據結構類型。列表是有序的對象結合,字典是無序的對象集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。

1,字典無序。2,數據關聯性強,3鍵值對。唯一一個映射的數據類型。

dic = {'name':'jinxin','age':20}
dic1 = {'py8期':['曉梅','方勝君',],'py6期':['zhangsan','lisi','wangwu']}
print(dic['name'])
print(dic1['py8期'])

for i in dic:
    print(i)

輸出:
jinxin
['曉梅', '方勝君']
name
age

字典的鍵必須是可哈希的(不可變的數據類型:字符串,數字,布爾值,元祖)並且是唯一的
不可哈希的(可變的數據類型:列表,字典,set)

dic = {'name':'alex','age':56,'hobby ':'oldwomem'}
print(dic)

輸出:
{'name': 'alex', 'age': 56, 'hobby ': 'oldwomem'}

#增:

dic = {'name':'alex','age':56,'hobby ':'oldwomem'}
dic['weight'] = 75
print(dic)

輸出:
{'name': 'alex', 'age': 56, 'hobby ': 'oldwomem', 'weight': 75}

 

# setdefault 在字典中添加鍵值對,如果只有鍵那對應的值是none,但是如果原字典中存在設置的鍵值對,則他不會更改或者覆蓋。

dic = {'name':'alex','age':56,'hobby ':'oldwomem'}
dic.setdefault('k')
dic.setdefault('name','v')
print(dic)

輸出:
{'name': 'alex', 'age': 56, 'hobby ': 'oldwomem', 'k': None}

刪:

pop

pop根據key刪除鍵值對,並返回對應的值,如果沒有key則返回默認返回值

dic = {'name':'alex','age':56,'hobby ':'oldwomem'}
dic.pop('name')
print(dic)

dic = {'name':'alex','age':56,'hobby ':'oldwomem'}
print(dic.pop('name'))
print(dic)

輸出:
{'age': 56, 'hobby ': 'oldwomem'}
alex
{'age': 56, 'hobby ': 'oldwomem'}

popitem:
隨機刪除字典中的某個鍵值對,將刪除的鍵值對以元祖的形式返回

dic_pop1 = dic.popitem()  # 隨機刪除字典中的某個鍵值對,將刪除的鍵值對以元祖的形式返回 print(dic_pop1) # ('name','jin')

clear: 清空字典

dic_clear = dic.clear()  # 清空字典
print(dic,dic_clear)  # {} None
del:刪除
# del dic["name"]  # 沒有返回值。
# print(dic)
改:

dic[key] = new_value

dic = {'name':'alex','age':56,'hobby ':'oldwomem'}
dic['name'] = '日天'
print(dic)

輸出:
{'name': '日天', 'age': 56, 'hobby ': 'oldwomem'}

 

# dic = {"name":"jin","age":18,"sex":"male"}
# dic2 = {"name":"alex","weight":75}
# dic2.update(dic)  # 將dic所有的鍵值對覆蓋添加(相同的覆蓋,沒有的添加)到dic2中
# print(dic2)

輸出:
{'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}

查:

dic = {'name':'alex','age':56,'hobby ':'oldwomem'}
print(dic['name'])
# print(dic['gfgfgfdgf'])  # 報錯
print(dic.get('name'))
print(dic.get('gfdgfgf'))  # None
print(dic.get('gfdgfgf','sb,沒有這個鍵'))
print(dic.keys(),type(dic.keys()))

輸出:
alex
alex
None
sb,沒有這個鍵
dict_keys(['name', 'age', 'hobby ']) <class 'dict_keys'>

其他操作:

dic = {'name':'alex','age':56,'hobby ':'oldwomem'}
item = dic.items()
print(item,type(item))     #dict_items([('name', 'alex'), ('age', 56), ('hobby ', 'oldwomem')]) <class 'dict_items'>
# 這個類型就是dict_items類型,可迭代的

keys = dic.keys()
print(keys,type(keys))  # dict_keys(['name', 'age', 'hobby ']) <class 'dict_keys'>

values = dic.values()
print(values,type(values))  # dict_values(['alex', 56, 'oldwomem']) <class 'dict_values'>

循環:

dic = {"name":"jin","age":18,"sex":"male"}
for key in dic:
    print(key)

for item in dic.items():
    print(item)

for key,value in dic.items():
    print(key,value)

輸出:
name
age
sex

('name', 'jin')
('age', 18)
('sex', 'male')

name jin
age 18
sex male
dic = {"name":"jin","age":18,"sex":"male"}
for key in dic.keys():
    print(key)
for i in dic:
    print(i)

輸出:
name
age
sex

name
age
sex
dic = {"name":"jin","age":18,"sex":"male"}
print(dic.values())
for value in dic.values():
    print(value)

輸出:
dict_values(['jin', 18, 'male'])

jin
18
male
a,b = [1,2]
print(a,b)

輸出:
1 2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM