python数据的可变性

  通过数据的可变性,可将数据分为可变数据类型不可变数据类型。

  可变数据类型:list,dict (不可哈希)

  不可变数据类型:元祖,bool,int,str (可哈希)

python字典详解

  字典的键(key),必须是不可变数据数据类型(可哈希),值(value)可以是任意类型。

  字典的优点:通过哈希表运用二分法可以进行快速高效的处理。特点:py3.5及其之前的版本字典是无序的

  增加

  第一种

dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
# dict[key] = value 字典里没有这个键,则随机添加,有的话,原有值被覆盖
dic['hobby'] = 'read' # 添加
dic['name'] = 'zxc' # 覆盖
print(dic)

  第二种

dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
# dict.setdefault(key, value) 字典里没有此键,则随机添加,有 则不变
dic.setdefault('hobby', 'read') # 添加
dic.setdefault('name', 'zxc') # 不变
print(dic)

  删除

  第一种

dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
# dict.pop(key, 返回值) 有返回值 字典里有此键,则删除,会返回键对应的值 没有,则返回‘返回值’
print(dic.pop('name')) # 输出jin
print(dic.pop('name')) # 报错 没有此键的话必须要设返回值
print(dic.pop('hobby', None)) # 输出None

  第二种

dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
# dict.popitem() 随机删除,有返回值,会以元祖(key, value)的形式返回
print(dic.popitem()) # 输出('sex', 'male')

  第三种

dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
# dict.clear() 清空字典 有返回值
print(dic.clear()) # None
print(dic)

  第四种

dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
# del dict 删除字典
del dic
# del dict[key] key不存在,报错
del dic['name']
# del dic['hobby'] # 报错
print(dic)

  修改 

  第一种

dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
# dict[key] = value 通过赋值直接修改
dic['name'] = 'zxc'
print(dic)

  第二种

dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
# dict.update(dict_new) 将新的字典覆盖添加到dict
dic_new = {'name': 'zxc', 'hobby': 'read'}
dic.update(dic_new)
print(dic)

  查看

  第一种

dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
# dict.keys() 查看字典的键
print(dic.keys()) # ['name', 'sex', 'age']
# dict.valus() 查看字典的值
print(dic.values()) # ['jin', 18, 'male']
# dict.items() 查看键值对
print(dic.items()) # [('age', 18), ('sex', 'male'), ('name', 'jin')]

  第二种

dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
# dict[key] 查key的值 没有key报错
print(dic['name']) # jin
# print(dic['hobby']) # 报错

  第三种

dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
# dict.get(key, 返回值) 查key的值 没有key,输出‘返回值’
print(dic.get('name')) # jin
print(dic.get('hobby')) # 没有 默认返回值是None
print(dic.get('hobby', '没有此键')) # 没有此键

  字典的嵌套

  根据嵌套的数据类型进行对应的操作。

# 嵌套字典的操作
dic = {
'name': 'zxc',
'message': {
'age': 24,
'height': 174,
'weight': 140,
'hobby': ['read', 'computer game', 'running']
}
} # 嵌套的是字典就按字典的操作方式
# dic['message'].setdefault('nationality', 'China')
# dic['message']['weight'] = 150
# print(dic) # 嵌套的是列表就按列表的操作方式
dic['message']['hobby'].insert(1, 'study')
dic['message']['hobby'][0] = 'music'
print(dic) # 嵌套的是字符串就按字符串的操作方式
print(dic['message']['hobby'][1].upper())

  

python基础五之字典的更多相关文章

  1. 『Python基础-10』字典

    # 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...

  2. Python基础数据类型之字典

      基础数据类型之字典 ps:数据类型划分:可变数据类型和不可变数据类型. 不可变数据类型:元组(tupe).布尔值(bool).整数型(int).字符串(str).不可变数据类型也称为可哈希. 可变 ...

  3. Python基础学习Day5 字典的增、删、改、查的用法 分别赋值

    一.字典的介绍 字典:字典是Python的基础数据类型之一:字典可以存储大量数据,关系型数据. 同样是Python中唯一的映射类数据类型.         数据类型的分类:        可变的数据类 ...

  4. Python基础(五) python装饰器使用

    这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 # -*- coding:gbk -*- '''示例1: 最简单的函数,表示调用了两次 ...

  5. Python 基础学习之字典

    1.基础代码 ##第六章 字典学习 test={'} print(test['a']) print(test['b']) 返回结果为: black123 2.基础知识: Python中的字典是一系列键 ...

  6. python3速查参考- python基础 4 -> 元组 + 字典 + 字符串 的学习

    元组 元组:特点就是内容不可变,算只读的列表,可以被查询,不能被修改 a = 2, print(a) print(type(a)) b = ('a','b','c') print(b[1]) 运行结果 ...

  7. Python基础语法之字典

    1 字典基础 1.1 字典是无序的对象的集合,通过键来存取,字典的键只能是不可变类型. 1.3 字典的长度可变,异构,任意嵌套. 1.2 python中不可变数据类型包括:数值类型,字符串和元组. 2 ...

  8. Python - 基础数据类型 dict 字典

    字典简介 字典在 Python 里面是非常重要的数据类型,而且很常用 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一 ...

  9. .Net程序员之Python基础教程学习----字典的使用 [Third Day]

      今天学习了字典的使用, 所谓的字典其实就是键值对数据, 一个字典里面有唯一的Key对应一个value,Key是唯一的,Value不唯一. 在.net添加相同的Key会报错,在Python,若出现相 ...

随机推荐

  1. HZOI20190714 T3建造游乐场

    先放作者的正解: 先说g吧,有i个点的话,在其中i-1个点中有$C_{i-1}^{2}$种边,每个边有选和不选两种情况.如果度不是偶数呢?用剩下那个点给他连上呗.如果剩下那个点度数不是偶数呢?这是不可 ...

  2. JS对HTML实体字符转义和反转义

    一.名词解释 HTML实体字符: 由于在HTML中有些符号是预留的,比如在html中不能直接使用尖括号(‘<’或‘>’),会被误认为标签符号.所以需要通过HTML实体字符去进行替换: HT ...

  3. oracle如何启用审计

    通过数据库初始化参数文件中的AUDIT_TRAIL 初始化参数启用和禁用数据库审计. DB  启用数据库审计并引导所有审计记录到数据库的审计跟踪 OS  启用数据库审计并引导所有审计记录到操作系统的审 ...

  4. OpenTelemetry-可观察性的新时代

    有幸在2019KubeCon上海站听到Steve Flanders关于OpenTelemetry的演讲,之前Ops领域两个网红项目OpenTracing和OpenCensus终于走到了一起,可观察性统 ...

  5. JAVA高级特性--String/StringBuffer/Builder

    String String对象一旦创建就不能改变 是常量 需要进行大量字符串操作应采用StringBuffer/StringBuilder  最终结果转换成String对象 StringBuffer ...

  6. Go语言开发教程

    Go语言简述 兴起:2009年Gogle发布的第二款开源编程语言 特征: 语法简单:语法标准比较严格,适合开发人员短时间高效的服务端开发. 并发模型:Goroutine是Go最显著的特征,使用类协程的 ...

  7. Gulp和webpack的作用和区别

    gulp是工具链.构建工具,可以配合各种插件做js压缩,css压缩,less编译 替代手工实现自动化工作 1.构建工具 2.自动化 3.提高效率用 webpack是文件打包工具,可以把项目的各种js文 ...

  8. 谷歌好样的,把 www 也干掉了

    谷歌好样的,把 www 也干掉了 继把 http 干掉后,这次 Chrome 76 连 https 和 www 都一起干掉了. 喜欢简洁,但这个功能演化过程可不简单. 最早觉得把 http 干掉很不方 ...

  9. 2018-2-13-win10-uwp-获取按钮鼠标左键按下

    title author date CreateTime categories win10 uwp 获取按钮鼠标左键按下 lindexi 2018-2-13 17:23:3 +0800 2018-2- ...

  10. Java练习 SDUT-2246_时间日期格式转换

    时间日期格式转换 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 对于日期的常用格式,在中国常采用格式的是"年 ...