pyton字典(8)

字典

字典由键(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…它们内部可以再包含其他元素了~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值