十、python中的字典(dict)及其增删改查嵌套等

1、数据类型的划分

  1. 数据类型划分:可变数据类型/不可变数据类型
  2. 不可变数据类型:元组,bool,数字,字符串,不可更改的又叫可哈希
    1. 可变数据类型:list,dict,不可哈希
    2. 名称空间存储的是变量与值的对应关系

2、字典的简介

  1. 元组:"()",列表:"[]",字典:"{}"
  2. 字典的key值(dict key):必须是不可变(可哈希)数据类型,而字典的值(value)可以是任意数据类型
  3. dict优点:查询速度快(其使用哈希map,查询算法为二分查找法);适用于储存大量的关系型数据
  4. 字典的特点:无序的、无索引(3.5及以前的特性)、3.6及以上是有序的

3、字典示例

#新建一个字典
dic = {'name':['大宝','小宝'],
       'py9':[{'num':71,'av_age':18}]   
      }

4、字典的有关操作

首先定义字典:dic1 = {'age':18,'name':'Jin','sex':'male'},这个在下面的相关实例中会用到。
1、往字典里面添加数据

  1. 方法一:字典名[属性名(键值)]=属性值
    该方法的特点:如果有的话则覆盖掉原来的值,没有则增加
    实例: dic1['high'] = 185
  2. 方法二:字典名.setdefault(key,value)
    方法的特点:有此键值不做任何操作,没有则增加
    实例: dic1.setdefault('weight',180)

2、删除字典中的某个数据

  1. 方法一:字典名.pop(key)
    方法的特点:有返回值,按找键值去删
    实例: result = dic1.pop('liu','无此值')#没找到则返回第二个参数
  2. 方法二:字典名.popitem()
    方法的特点:有返回值,为元组里面删除的键值
  3. 方法三:del 字典名['键值']

3、清空字典

  1. 方法一:字典名.clear()——清空字典里面的数据
  2. 方法二:del 字典名——删除字典

4、字典的update()方法
基本语法: 字典名1.update(字典名2)
解释: 表示将“字典名2”中的元素复制到“字典名1”中,复制的规则是“字典名2”和“字典名1”都有的key,其值以“字典名2”为准;然后对于“字典名1”没有的而“字典名2”有的key复制到“字典名1”中,然后保留“字典名1”中有的而“字典名2”中没有的key和相应的value即可。
实例:
在这里插入图片描述
5、查询字典的内容的方法
查询字典内容的方法有三个,分别为:keys()、values()、items();其调用的基本语法都类似于字典名.方法名()这种方法,如:dic.keys();下面通过实例说明这几个方法的异同:
在这里插入图片描述
6、打印字典中键值的方法
在python中,可以通过for循环打印字典中的key值,具体看实例:
在这里插入图片描述
7、打印字典中的键值对
打印字典中的键值对有两种方法,虽然都是通过for循环完成,但是其输出结果有所差异,这里以一个例子说明:
在这里插入图片描述
说明: 从上面可以看出,当for循环中只有一个变量(i)时,打印出的结果是将key和相应的value放在一个元组中输出的;而有两个变量(i,j)时,则直接是打印的key和相应的value的字符串;并未对其用其他类型(如元组)进行封装。
8、get()方法
基本语法: 字典名.get(key,如果没找到相应的值应输出的内容)
说明: 根据key查找相应的value值,若字典中没有相应的key,则输出第二个参数的内容
实例:
在这里插入图片描述

5、字典的嵌套

这里以一个实例来进行说明:
首先,定义如下字典。

dic = {
           'name':['alex','wusir','taibai'],
           'py9':{
                'time':'1213',
                'learn-price':'12000',
                'addr':'CBD',
           },
                'age':51
       }

实例1:
在这里插入图片描述
实例2:
在这里插入图片描述

附:在python中不定义第三个变量交换两个变量的值

可以利用python的赋值语句独有的一些特性来完成类似操作,具体如下:

a = c #c为已知常量
b = m #m为已知常量
a,b = b,a

实例:

   a = 1
   b = 2
   a,b = b,a #结果:a=2 b = 1
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值