Python:基础数据类型--字典

基础数据类型--字典

Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

键必须是唯一的,但值则不必。

d = {key1 : value1, key2 : value2 }

字典:增

dic = {'name': '老男孩','age': 10000, 'sex': ''}
dic['hobby'] = 'old_girl'                  # 有key则修改,无则增加
dic['name'] = 'alex'
print(dic)

{'name': 'alex', 'age': 10000, 'sex': '', 'hobby': 'old_girl'}

setdefault()  有则不修改,无则增加。

dic = {'name': '老男孩','age': 10000,'sex': ''}
dic.setdefault('sex','女')                 # 有key则不修改,无则增加print(dic)

{'name': '老男孩', 'age': 10000, 'sex': ''}

字典:删

pop()  按照key删除元素,并返回删除的元素。

dic = {'name': '老男孩','age': 10000,'sex': ''}
print(dic.pop('name'))            # 删除key为name的元素,并将其返回。

dic.pop('name1',None) # 删除没有的key,未避免报错,可以设置默认返回值。 print(dic) 老男孩 {'age': 10000, 'sex': ''}

popitem()   在python3.6之前为随机删除字典中的一个元素,python3.6则是删除字典中最后一个元素。

dic = {'name': '老男孩','age': 10000,'sex': ''}
print(dic.popitem())
print(dic)

('sex', '')
{'name': '老男孩', 'age': 10000}

clear()  清空字典。

dic = {'name': '老男孩','age': 10000,'sex': ''}
dic.clear()
print(dic)

{}

del  1,删除整个字典。2,按照键去删除键值对。

dic = {'name': '老男孩','age': 10000,'sex': ''}
del dic['name']
print(dic)
del dic                  # 删除整个字典 print(dic) {'age': 10000, 'sex': ''} NameError: name 'dic' is not defined

字典:改

dic = {'name': '老男孩','age': 10000,'sex': ''}
dic['name'] = 'alex'                  # 无责增加,有责修改。
print(dic)

{'name': 'alex', 'age': 10000, 'sex': ''}
dic = {'name': '老男孩','age': 10000,'sex': ''}
dic = {"name": "jin", "age": 18,"sex": "male"}
dic2 = {"name": "alex", "weight": 75}
dic2.update(dic)             # 将dic里面的键值对覆盖并更新到dic2中,dic不变 。
print(dic)                 # {'name': 'jin', 'age': 18, 'sex': 'male'}
print(dic2)                # {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}

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

列表:查

get()  查找时如果没有此key 不会报错。

dic = {"name": "jin", "age": 18,"sex": "male"}          
print(dic['name1'])          
print(dic.get('name1','没有此键...')) #设置查询key不存在时,的返回值

jin
没有此键...

keys()  返回字典中的所有key

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

name
age
sex

values()  返回字典中的所有值

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

dict_values(['jin', 18, 'male'])

items()    返回可遍历的键, 值对

dic = {"name": "jin", "age": 18,"sex": "male"}
for k, v in dic.items():
    print(k, v)

name jin
age 18
sex male

坑: 再循环一个字典时,不要改变字典的大小,这样会影响结果。

dic = {'k1': 'v1', 'k2': 'v2', 'k3':'v3', 'name':'alex'}
for k in dic:
    if 'k' in k:
        dic.pop(k)
        
RuntimeError: dictionary changed size during iteration

猜你喜欢

转载自www.cnblogs.com/bailo/p/9032976.html