Python字典(Python系列12)

1.字典定义 

        由一系列键值对组成的可变散列容器

        语法:字典名 = { 键1:,  键2: }

dict01 = {
    name: "唐人街探案",
    type: "喜剧",
    actor: "王宝强",
}

        语法非常简单,但这里又出现了一个新的概念散列,那什么是散列呢?

 2.散列

        定义:通过哈希算法将键转换为对应存储位置的容器类型。

        特点1:无需遍历,直接计算储存位置,速度最快。

        特点2:键必须唯一且只能是不可变类型的数据。

        缺点:在内存中元素没有顺序且占内存较大。

        我们来看看字典的内存分布图吧。

        

        可以看到字典的底层其实是两个列表,字典也是可变的,所以它也有预留空间,也会自动扩容,但是字典和列表的不同点是,字典是快满的时候就扩容了,而列表是满了再扩。

        那什么是哈希算法,什么又是哈希碰撞和开放寻址呢?

        这个在下一章,也就是下一个系列将会详细描述。 

3.字典增删改查方法

dict = {"name": "谭", "age": 17, "sex": "男"}
print(dict.keys())  # 直接访问全部键
print(dict.values())  # 直接访问值
 
print(dict["name"])  # 由键访问值
print(dict.get("name"))  # 由键访问值,好处不存在时也能不报错
 
# 增
# 直接让键等于一个值即可
dict["id"] = 1925123720
print(dict)
 
# 删
# del 和 clear
del dict["id"]
print(dict)
 
# dict.clear()
# print(dict)
 
# 改
dict["age"] = 18
print(dict)
# 查
for key in dict.keys():  # 获得所有的键
    print(key, end=" ")
print()
for value in dict.values():  # 获得所有的值
    print(value, end=" ")
print()
print(dict.items())  # 得所有键值
for key, value in dict.items():  # 因为它获得的是键值对,所有可以打印两个
    print(key, value)
 
# 列表的知识点
list = ["小谭", "小孙", "小刘", "小赵", "小陈", "小徐"]
# 枚举循环
for i, x in enumerate(list):
    print(i + 1, x)

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值