字典增删改查

一 字典

  字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,3.6版本之后字典是有序的(3.5版本之前字典是无序的),且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,3.6版本之后字典是有序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

 

增:setdefault:

dic = {
    'name':'烟雨江南',
    'age':18,
    'sex':'man'
}
增
dic['hobby'] = '看书'  # 有则修改,无则添加
print(dic)
dic.setdefault('hobby','玩游戏') # 有则不变,无则添加
print(dic)
View Code

 

删:pop、clear、popitem、del

dic = {
    'name':'烟雨江南',
    'age':18,
    'sex':'man'
}
ret = dic.pop('name') # 按照键删除键值对,并返回删除的值
ret = dic.pop('name1','删除的对象不存在') # 设置两个参数,第二个参数是提示语,一般设置为None;键不存在也不会报错
print(ret)
dic.clear() # 清空字典
dic.popitem() #3.6版本之后删除最后一个键值对
print(dic)
del dic['name'] # 按照建删除
print(dic)
View Code

 

改:update

dic = {
    'name':'烟雨江南',
    'age':18,
    'sex':'man'
}
dic['name'] = 'jj'
print(dic)
dic.update(name = 'TSL',money=10000)  #更新:有则覆盖,没有则添加
print(dic)

dic = {"name": "jin", "age": 18, "sex": "male"}
dic2 = {"name": "alex", "weight": 75}
dic2.update(dic)
# 将dic里面的键值对覆盖添加到dic2中
View Code

 

 

查:

dic = {
    'name':'烟雨江南',
    'age':18,
    'sex':'man'
}
print(dic['age']) # 若不存在会报错

dic.get('age')    # 没有此键默认返回None
print(dic)
ret = dic.get('age1','此键不存在') # 键不存在,可设置提示语
print(ret)
View Code

 

 

 二 字典的其他操作:

 

dic = {
        'name': '太白金星',
        'age': 18,
        'hobby': 'wife',
    }
# 查看键
res = dic.keys()   # 查看字典中所有键
print(res,type(res)) # <class 'dict_keys'> 该类型可以循环遍历
for i in res:
    print(i)
print(list(res)) # 也可以通过list转化为列表
-------------------------------------------------------------
# 查看值
res1 = dic.values()  # 查看字典中所有值
print(res1,type(res1))  # <class 'dict_values'>  该类型可以循环遍历
for i in res1:
    print(i)
print(list(res1))   # 也可以通过list转化为列表
-------------------------------------------------------------
#查看键值对
res2 = dic.items()
print(res2,type(res2))  # 查看字典中所有键值对
for i in res2:
    print(i)
print(list(res2))  # 也可通过list转化为列表:[('name', '太白金星'), ('age', 18), ('hobby', 'wife')]
View Code

 

 

 

——>创建字典7种方式:https://www.cnblogs.com/jiazeng/p/10644030.html

 

posted @ 2019-07-13 18:16  self哥  阅读(133)  评论(0编辑  收藏  举报