目录

字典 (dict) 

1、增

2、删 

3、改 

4、查


字典 (dict) 

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

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

1、增

dic = {
    'name':'张三',
    'age':20,
    'sex': 'male',
}
dic['high'] = '185cm'  #没有相同的key时,添加
print(dic)
dic['name'] = '李四'  #有相同的key时,替换
print(dic)

# setdefault 在字典中添加键值对,如果只有键那对应的值是none,但是如果原字典中存在设置的键值对,则他不会更改或者覆盖。
dic.setdefault('K')  #只有键那对应的值是none
print(dic)
dic.setdefault('weight',50)  
print(dic)
dic.setdefault('name','王五')#原字典中存在设置的键值对,不会更改或者覆盖
print(dic)

输出结果:

{'name': '张三', 'age': 20, 'sex': 'male', 'high': '185cm'}
{'name': '李四', 'age': 20, 'sex': 'male', 'high': '185cm'}
{'name': '李四', 'age': 20, 'sex': 'male', 'high': '185cm', 'K': None}
{'name': '李四', 'age': 20, 'sex': 'male', 'high': '185cm', 'K': None, 'weight': 50}
{'name': '李四', 'age': 20, 'sex': 'male', 'high': '185cm', 'K': None, 'weight': 50}

2、删 

dic = {
    'name':'张三',
    'age':20,
    'sex': 'male',
    'v':'abc'
}
dic.pop('sex')  #按键去删除,有返回值,可直接print打印
print(dic)
print(dic.pop('v'))
print(dic.pop('aaa',None))  #按键去删除,如果没有此键,可设置返回值,不设置返回值直接打印会报错

 输出结果:

{'name': '张三', 'age': 20, 'v': 'abc'}
abc
None

dic = {
    'name':'张三',
    'age':20,
    'sex': 'male',
    'v':'abc'
}
dic.popitem()  #python3.5之前版本随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回,python3.6删除最后一个键值对
print(dic)
print(dic.popitem()) #将删除的键值对以元祖的形式返回

 输出结果:

{'name': '张三', 'age': 20, 'sex': 'male'}
('sex', 'male')

dic = {
    'name':'张三',
    'age':20,
    'sex': 'male',
    'v':'abc'
}
dic.clear() #清空字典
print(dic)
#del dic #删除字典

  输出结果:{}

3、改 

dic = {
    'name':'张三',
    'age':20,
    'sex': 'male',
    'v':'abc'
}
dic['name'] = '李四'  #按键来修改值
print(dic)

  输出结果:{'name': '李四', 'age': 20, 'sex': 'male', 'v': 'abc'}

dic = {"name":"张三","age":18,"sex":"male"}
dic2 = {"name":"李四","weight":75}
dic2.update(dic)  # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
print(dic2)

  输出结果:{'name': '张三', 'weight': 75, 'age': 18, 'sex': 'male'}

4、查

dic = {'age':18,'name':'liu','sex':'male'}

print(dic.keys()) #字典的键值对 以列表形式输出 但是类型是键值对型
结果:dict_keys(['age', 'name', 'sex'])

print(dic.values()) #字典的值 以列表形式输出 但是类型是键值对型
结果:dict_values([18, 'liu', 'male'])

print(dic.items()) #字典的键值对 以元祖形式输出 但是类型是键值对型
结果:dict_items([('age', 18), ('name', 'liu'), ('sex', 'male')])
for i in dic: #默认打印出键值,后面跟.value可以打印出数值,后面跟.items可以打印键值对
    print(i)
结果:age
         name
         sex

print(dic.get('age')) #根据键找对应的数值,不报错 可以自定义值 默认返回 none
结果:18