55 字典特性

本文探讨了Python中值的传递方式,区分可变类型(如列表和字典)和不可变类型(如整数和字符串),重点讲解了字典的键规则,包括唯一性和不可变性,并提供了实例和练习,帮助读者理解字典的基本概念和操作技巧。
摘要由CSDN通过智能技术生成

1、想一想

在这里插入图片描述
请问此时b的值为多少? 1
在这里插入图片描述
请问此时b的值为多少? [1, 2, 3]

2、引用传递

python中,值是靠引用来传递来的。
我们可以用id()来判断两个变量是否为同一个值的引用。 我们可以将id值理解为那块内存的地址标识。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在Python中,通过变量2=变量1,去修改变量1的值 ,变量2的值会不会修改,跟变量1的类型有关系。、
如果变量1是可变类型,则变量2也会被修改。
如果变量1是不可变类型,则变量2不会被修改。

3、可变类型和不可变类型

可变类型,即值可以改变:

  • 列表 list
  • 字典 dict

不可变类型,即值不可以改变:

  • 数值类型 int, long, bool, float
  • 字符串 str
  • 元组 tuple
  • 布尔类型

4、字典的键不允许重复,而且必须是不可变类型

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

  • 不允许同一个键出现两次。
    在这里插入图片描述

  • 键必须不可变
    所以可以用数值,字符串、元组或布尔充当,而用列表就不行。
    在这里插入图片描述

5、思考

在这里插入图片描述
在这里插入图片描述

6、字典小结

  • 通过键而不是通过索引来读取
    字典有时也称为关联数组或者散列表(hash)。它是通过键将一系列的值联系起来的,这样就可以通过键从字典中获取指定项,但不能通过索引来获取。

  • 字典是任意对象的无序集合
    字典是无序的,各项是从左到右随机排序的,即保存在字典中的项没有特定的顺序。这样可以提高查找效率。

  • 字典是可变的,并且可以任意嵌套
    字典可以在原处增长或者缩短(无须生成一个副本)。并且它支持任意深度的嵌套(即它的值可以是列表或者其他的字典)。

  • 字典中的键必须唯一
    不允许同一个键出现两次,如果出现两次,则后一个值会被记住。

  • 字典中的键必须不可变
    字典中的键是不可变的,所以可以使用数字、字符串或者元组,但不能使用列表。

7、练习

一、有字典dic = {"k1": "v1", "k2": "v2", "k3": "v3"},请完成如下操作:
(1)遍历字典 dic 中所有的key
(2)遍历字典 dic 中所有的value
(3)循环遍历字典 dic 中所有的keyvalue
(4)添加一个键值对"k4","v4",输出添加后的字典dic
(5)删除字典 dic 中的键值对"k1","v1",并输出删除后的字典 dic
(6)删除字典 dic 中 ‘k5’ 对应的值,若不存在,使其不报错,并返回None
(7)获取字典 dic 中“k2”对应的值
(8)获取字典 dic 中"k6"对应的值,如果不存在,使其不报错,并且让其返回数据 None

二、有字典 dic2 = {'k1':"v111",'a':"b"} ,通过一行操作使dic2 = {'k1':"v111",'k2':"v2",'k3':"v3",'k4': 'v4','a':"b"}

三、组合嵌套,现有列表如下:
list = [['k', ['qwe', 20, {'k1': ['tt', 3, '1']}, 89], 'ab']],实现功能如下
(1)将数字 3 变成字符串 ‘100’(两种方式)
(2)将列表中的字符串‘1’变成数字101(两种方式)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值