day6 字典的增减查删

字典的使用

一、字典的特性

字典是无序的,数据关联性强,键值对,唯一一个映射的数据类型
字典的键必须是可哈希的(不可变的数据类型:字符串,数字,布尔值,元祖),并且是唯一的
不可哈希的(可变的数据类型:列表,字典,集合)

二、字典的增

复制代码
# 直接增加
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
dic['weight'] = 75  # 如果不存在则直接添加
dic['name'] = 'ritian'  # 如果存在则会替换原有的值
print(dic)
# setdefault有键值对不做改变,没有才会添加
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
dic.setdefault('k')  # 'k'的值默认为None
dic.setdefault('k','v')  # 'k'的值为'v'
dic.setdefault('name','v')  # 如果有这个键,则不会有改变,没有这个键才会添加
print(dic)
复制代码

三、字典的删

复制代码
# pop删除,有返回值
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
print(dic.pop('name'))  # 按照键删除,返回键对应的值
# print(dic.pop('123'))  # 如果键不存在则会报错
print(dic.pop('123','没有不报错'))  # 此时如果没有键会返回'没有不报错',逗号后面为返回值
# popitem随机删除键值对
print(dic.popitem())  # 随机删除键值对,会将删除的键值对以元祖的形式返回
# clear清空
dic.clear()
print(dic)
# del删除
# del dic['name']  # 如果没有这个键会报错
print(dic)
复制代码

四、字典的改

复制代码
# 直接修改
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
dic['name'] = 'jinxin'
print(dic)
# update更新
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
dic1 = {'name':'barry','job':'teacher'}
dic.update(dic1)
print(dic)  # 将dic1的覆盖dic,dic中有的覆盖,没有的添加进来
print(dic1)  # dic1不变
复制代码

五、字典的查

# 直接查
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
print(dic['name'])  # 如果键没有会报错
# get
print(dic.get('name'))  # 如果没有这个键会返回None
print(dic.get('name','没有这个键'))  # 如果没有这个键会返回'没有这个键'

六、字典的特殊用法

复制代码
# 字典里特殊的用法
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
print(dic.keys())  # dict_keys(['age', 'hobby', 'name'])将所有的键放入一个列表
for key in dic.keys():  # for i in dic:效果等同
    print(key)

print(dic.values())  # dict_values([56, 'oldwomen', 'alex'])将所有的值放入一个列表
for value in dic.values():
    print(value)

print(dic.items())  # dict_items([('age', 56), ('hobby', 'oldwomen'), ('name', 'alex')])
for key,value in dic.items():
    print(key,value)
复制代码
posted @ 2017-10-25 21:27  邯城吴彦祖  阅读(206)  评论(0编辑  收藏  举报