Python开发【第九篇】字典
字典
字典是一种可变的容器,可以存储任意类型的数据
字典中的每个数据都是用键进行索引,而不像序列容器(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开发【第九篇】字典的更多相关文章
- 《python开发技术详解》|百度网盘免费下载|Python开发入门篇
<python开发技术详解>|百度网盘免费下载|Python开发入门篇 提取码:2sby 内容简介 Python是目前最流行的动态脚本语言之一.本书共27章,由浅入深.全面系统地介绍了利 ...
- iOS开发UI篇—字典转模型
iOS开发UI篇—字典转模型 一.能完成功能的“问题代码” 1.从plist中加载的数据 2.实现的代码 // // LFViewController.m // 03-应用管理 // // Creat ...
- python开发第一篇:初识python
一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...
- python【第九篇】多线程、多进程
内容提要 paramiko模块 进程.与线程区别 python GIL全局解释器锁 多线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生 ...
- [Python笔记]第九篇:re正则表达式
一.正则表达式基础 1.正则表达式介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分 ...
- Python开发第一篇
Python 是什么? 首先他可能是比较好的一个编程开发语言!
- Python开发——数据类型【字典】
字典的定义 # Python语言中唯一的类型映射 # 键与值之间用“:”分开 # 项与项之间用“,”分开 person = {"name":"yuan",&qu ...
- Python 学习 第九篇:模块
模块是把程序代码和数据封装的Python文件,也就是说,每一个以扩展名py结尾的Python源代码文件都是一个模块.每一个模块文件就是一个独立的命名空间,用于封装顶层变量名:在一个模块文件的顶层定义的 ...
- Python开发 第一篇 python的前世今生
Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...
- Swift开发第九篇——Any和AnyObject&typealias和泛型接口
本篇分为两部分: 一.Swift中的Any和AnyObject 二.Swift中的typealias和泛型接口 一.Swift中的Any和AnyObject 在 Swift 中,AnyObject 可 ...
随机推荐
- PTA A1003&A1004
第二天 A1003 Emergency (25 分) 题目内容 As an emergency rescue team leader of a city, you are given a specia ...
- 我用数据结构花了一夜给女朋友写了个h5走迷宫小游戏
目录 起因 分析 画线(棋盘) 画迷宫 方块移动 结语 @(文章目录) 先看效果图(在线电脑尝试地址http://biggsai.com/maze.html): 起因 又到深夜了,我按照以往在公众号写 ...
- 安装vue-cli 3.
安装node.js,查看版本node -v 修改npm为阿里的镜像源 npm install cnpm -g --registry=https://registry.npm.taobao.org 查看 ...
- Python3.7.4入门-0/1To Begin/数据类型与结构
0 To Begin //:向下取整除法 **:乘方 在交互模式下,上一次打印出来的表达式被赋值给变量 _ 如果不希望前置了 \ 的字符转义成特殊字符,可以使用 原始字符串 方式,在引号前添加 r 即 ...
- 为elastic的索引做快照并恢复快照到新集群
1. 为指定的所有做快照 curl -XPUT "192.168.1.1:9200/_snapshot/my_backup/testindex_20170803?wait_for_compl ...
- 提交第一个spark作业到集群运行
写在前面 接触spark有一段时间了,但是一直都没有真正意义上的在集群上面跑自己编写的代码.今天在本地使用scala编写一个简单的WordCount程序.然后,打包提交到集群上面跑一下... 在本地使 ...
- Jupyter Notebook安装和使用详情(你不懂我......)
一.Jupyter Notebook是什么? 1.notebook jupyter 简介 Jupyter Notebook是一个开源Web应用程序,允许您创建和共享包含实时代码,方程式,可视化效果和叙 ...
- 安装sublime text3 、转化为汉化版、安装SublimeREPL使得在交互条件下运行代码,设置快捷键
一.sublime Sublime Text 3是轻量级的,安装包很小,它的大部分功能是依靠丰富的插件实现的,而且占用资源少.目前主流版本是Sublime Text3,在官网就可以下载,http:// ...
- 【未完成】mysql数据库安全性配置——用户授权
方式一:从服务设置授权 一:用户授权——从服务设置授权 (1)准备测试环境——不同服务器用户 首先,查看数据库连接当前用户情况,当前连接的只有root用户. select user,host,pass ...
- Linux 删除命令rm
Linux rm命令用于删除一个文件或者目录. 语法:rm [options] name... 参数: 1.-i 删除前逐一询问确认. 2.-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认. 3 ...