字典
字典由键(key)和值(value)组成,可以根据key快速的找到value。python中的字典中可以包含许多的键值对,同时要求这些键不能重复。
一个字典中的key类型不一定都一样,value类型也不必都一样。字典对key的类型有约束(不可变),对与value的类型没有约束。
#创建字典
a = {'id': 1, 'name': "zhangsan"}
b = dict()
print(type(a))
print(type(b))
print(a)
a = {
'id': 1,
'name': 'zhangsan',
100: 2
}
print(a)
<class 'dict'>
<class 'dict'>
{'id': 1, 'name': 'zhangsan'}
使用in或者[ ]获取value对字典来说是非常高效的操作(字典使用了哈希表),对于列表来说使用in(需要遍历一遍)是比较低效的,使用[ ](类似于数组取下标)是比较高效的。
#in只是判断key是否存在,和value无关
print('id' in a)
print('oo' in a)
print('id' not in a)
#使用[]来根据key获取到value
print(a['id'])
print(a[100])
{'id': 1, 'name': 'zhangsan', 100: 2}
True
False
False
1
2
#新增元素
a['score'] = 20
print(a)
#修改
a['score'] = 10
print(a)
#pop删除
a.pop('score')
print(a)
print(a.keys())
print(a.values())
print(a.items())
#字典遍历
for key, value in a.items():
print(key, value)
{'id': 1, 'name': 'zhangsan', 100: 2, 'score': 20}
{'id': 1, 'name': 'zhangsan', 100: 2, 'score': 10}
{'id': 1, 'name': 'zhangsan', 100: 2}
dict_keys(['id', 'name', 100])
dict_values([1, 'zhangsan', 2])
dict_items([('id', 1), ('name', 'zhangsan'), (100, 2)])
id 1
name zhangsan
100 2
字典的各种操作,都是针对key来进行的新增,删除,获取value,修改value。如果key存在,往里写入,则相当于根据key修改value。
遍历指的就是能够把一个可迭代对象,里面包含的元素依次的取出来,并进行一些操作.整个过程要求不重不漏.,字典被设计出来的初衷,不是为了实现遍历,而是为了增删改查。字典是哈希表,进行增删改查操作,效率都是非常高的!!而字典的遍历则效率就要差一些.
哈希表这个结构被设计的非常巧妙能够以"常数级”时间复杂度来完成增删改查~
keys获取到字典中的所有key
values获取到字典中的所有value
items获取到字典中的所有键值对
hash
#使用哈希函数可以计算出一个变量的哈希值hash 可以作为一个字典的key 不可变
print(hash(0))
print(hash(3.14))
print(hash('hello'))
print(hash(True))
print(hash((1, 2, 3)))
#有的类型不能计算哈希值(可变的对象) 不可作为一个字典的key
#print(hash([1, 2, 3])) #列表不可计算hash值
#print(hahs({})) #字典不可计算hash值
0
322818021289917443
-4912917136987867023
1
2528502973977326415
字典,列表,元组Python中非常常用的内置类型~相比于int, str, float…它们内部可以再包含其他元素了~~