字典

字典是一种可变的容器,可以存储任意类型的数据

字典中的每个数据都是用键进行索引,而不像序列容器(str,list,tuole)可以用整数进行索引

字典中的数据没有先后顺序,字典的存储是无序的

字典中的数据以键值对的形式进行存储

字典中的键不能重复,且只能用不可变的类型作为字典的键

语法:

#创建空字典
d = {}
#创建非空字典
d = {"name":"liuwei","age":25}

创建字典的构造函数

#生成一个空的字典等同于{}
dict()
#用可迭代对象创建一个字典
dict(iterable)
#用关键字传参形式生成一个字典
dict(**kwargs)

注:字典的键必须为不可变类型的值

可变类型有四种:1. 列表(list)

​ 2. 字典(dict)

​ 3. 集合(set)

​ 4. 字节数组(bytearray)

除上述四种其他都为不可变类型

不可变类型有三种:1. 字符串(str)

​ 2. 元组(tuple)

​ 3. 整数(int)

字典的基本操作

字典的键索引

语法:

d = {"name":"liuwei","age":27}
d["name"]
"liuwei"
d["age"]
27

作用:用键获取字典的键对应的值

删除字典元素

语法:

d = {"name":"liuwei","age":27}
del d['age']
print(d)
{"name":"liuwei"}

字典的键判断

可以用 in 运算符判断一个键是否存在于字典中,如果存在返回True,否则返回False

not in 返回值与 in 相反

语法:

d = {"name":"liuwei","age":27}
"name" in d
True
"age" not in d
False

字典的遍历

字典是可迭代对象,字典只能对键进行遍历

例子:

d = {"name":"liuwei","age":27}
for i in d:
print(i)
#结果
name
age

可以用于字典的函数

len(x) 返回字典中键的个数
max(x) 返回字典中键最大值
min(x) 返回字典中键的最小值
sum(x) 返回字典中键的所有和
any(x) 真值测试,只能对键进行测试,只要有一个键为真值,结果都为True
all(x) 真值测试,所有的键结果都为真值,结果才为True

字典的方法

函数 说明
D代表字典对象
D.clear() 清空字典
D.pop(key) 移除键,同时返回此键所对应的值
D.copy() 返回字典D的副本,只复制一层(浅拷贝)
D.update(D2) 将字典 D2 合并到D中,如果键相同,则此键的值取D2的值作为新值
D.get(key, default) 返回键key所对应的值,如果没有此键,则返回default
D.keys() 返回可迭代的 dict_keys 集合对象
D.values() 返回可迭代的 dict_values 值对象
D.items() 返回可迭代的 dict_items 对象

字典推导式

字典推导式是用可迭代对象来创建字典的表达式

语法:

{键表达式:值表达式 for 临时变量 in 可迭代对象 [if 真值表达式]} if 真值表达式可以省略
注:[]里的内容代表可以省略

例子:

#生成一个字典,键为数字0-9 值为键的平方
d = {x:x**2 for x in range(10)}
print(d)
#结果
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

Python开发【第九篇】字典的更多相关文章

  1. 《python开发技术详解》|百度网盘免费下载|Python开发入门篇

    <python开发技术详解>|百度网盘免费下载|Python开发入门篇 提取码:2sby  内容简介 Python是目前最流行的动态脚本语言之一.本书共27章,由浅入深.全面系统地介绍了利 ...

  2. iOS开发UI篇—字典转模型

    iOS开发UI篇—字典转模型 一.能完成功能的“问题代码” 1.从plist中加载的数据 2.实现的代码 // // LFViewController.m // 03-应用管理 // // Creat ...

  3. python开发第一篇:初识python

    一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...

  4. python【第九篇】多线程、多进程

    内容提要 paramiko模块 进程.与线程区别 python GIL全局解释器锁 多线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生 ...

  5. [Python笔记]第九篇:re正则表达式

    一.正则表达式基础 1.正则表达式介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分 ...

  6. Python开发第一篇

    Python 是什么? 首先他可能是比较好的一个编程开发语言!

  7. Python开发——数据类型【字典】

    字典的定义 # Python语言中唯一的类型映射 # 键与值之间用“:”分开 # 项与项之间用“,”分开 person = {"name":"yuan",&qu ...

  8. Python 学习 第九篇:模块

    模块是把程序代码和数据封装的Python文件,也就是说,每一个以扩展名py结尾的Python源代码文件都是一个模块.每一个模块文件就是一个独立的命名空间,用于封装顶层变量名:在一个模块文件的顶层定义的 ...

  9. Python开发 第一篇 python的前世今生

    Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...

  10. Swift开发第九篇——Any和AnyObject&typealias和泛型接口

    本篇分为两部分: 一.Swift中的Any和AnyObject 二.Swift中的typealias和泛型接口 一.Swift中的Any和AnyObject 在 Swift 中,AnyObject 可 ...

随机推荐

  1. HBase 超详细介绍

    1-HBase的安装 HBase是什么? HBase是Apache Hadoop中的一个子项目,Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoop的DFS工具就可以看到 ...

  2. TestNG(一) TestNG实战在idea中创建module

    1.在ider里创建一个Module 2.直接点击下一步 3.输入Groupld h和Artifactid名称,点击下一步 4.点击Finish 创建完成

  3. 字符串之————图文讲解字符串排序(LSD、MSD)

    本篇文章围绕字符串排序的核心思想,通过图示例子和代码分析的方式讲解了两个经典的字符串排序方法,内容很详细,完整代码放在文章的最后. 一.键索引计数法 在一般排序中,都要用里面的元素不断比较,而字符串这 ...

  4. js-数据交互--AJAX

    一:介绍 今天跟下大家简单的介绍一下,在前端开发中,前后端数据交互的一种手段,我们都知道,在前端往后端传送数据的话,利用get,post方法即可向后端发送数据,后端将数据接受,链接到数据库,进行数据库 ...

  5. java反射机制,以及对反射机制的了解

    反射是什么?反射有什么用?我相信大家在开始学的时候都会有疑惑,直到如今我学的还不够深入只能简单的说说反射的作用,理论的我也听得很迷糊,接下来我就以几个例子来 写写反射的用处: 494696003群,有 ...

  6. thymeleaf自定义标签方言处理

    项目背景:springboot+thymeleaf thymeleaf两种方式处理自定义标签:AbstractAttributeTagProcessor 和 AbstractElementTagPro ...

  7. Mysql学习笔记整理之引擎

    mysql的引擎: myisam引擎 Mysql 5.5之前默认的存储引擎 数据.索引分别存储 (数据物理磁盘---索引物理磁盘) .MYD 存储数据                      表级索 ...

  8. 基于Docker搭建大数据集群(三)Hadoop部署

    主要内容 Hadoop安装 前提 zookeeper正常使用 JAVA_HOME环境变量 安装包 微云下载 | tar包目录下 Hadoop 2.7.7 角色划分 角色分配 NN DN SNN clu ...

  9. JAVA线程基础概念及使用

    一.线程和进程的区别 在操作系统中所有运行的任务通常对应一个进程,进程是系统进行资源分配和调度的一个独立单位.线程是进程的组成部分,一个进程最少包含一个线程.并发和并行的区别是,并发指的在同一时刻内, ...

  10. Spring 梳理-处理Multipart 请求

    原理讲解 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下: <form method="post"actio ...