Python开发【第九篇】字典
2024-09-01 09:23:06
字典
字典是一种可变的容器,可以存储任意类型的数据
字典中的每个数据都是用键进行索引,而不像序列容器(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}
最新文章
- 十分钟掌握Activity的生命周期与启动模式
- Can't add self as subview的困惑
- WPF中的DataTemplate
- android入门——BroadCast(2)
- js函数绑定同时,如何保留代码执行环境?
- pycharm 2017新建文件添加编码方式等
- JAVA 第二天 内部类
- 计算机网络三:域名、IP地址和TCP/IP协议
- c# nginx 配置
- 学习 yii2.0——视图之间相互包含
- zookeeper的搭建和简单的使用
- 【Java】「深入理解Java虚拟机」学习笔记(1) - Java语言发展趋势
- linux 用户/群组/权限
- Javascript如何避免连续调用中取到不存在的属性而导致报TypeError错?
- C#图片处理(转zhjzwl/archive)
- Linux中的绝对路径和相对路径
- CentOS 6 安装python3.6
- ThinkPHP CURD mysql操作
- Python面试题(十六)
- [golang] go的typeswitch guard(类型区别)语法和type assertion(类型断言)语法
热门文章
- 右键没有新建word选项
- VUE从入门到放弃(项目全流程)————VUE
- 03: OpenGL ES 基础教程02 使用OpenGL ES 基本步骤
- SpringBoot的注解注入功能移植到.Net平台(开源)
- Java门面模式
- windows下使用zkui
- Spring MVC-从零开始-web.xml中classpath和classpath* 有什么区别
- 探索ASP.NET Core 3.0系列一:新的项目文件、Program.cs和generic host
- Redis-->;Ubutn上的安装教程
- 推荐几个我近期排查线上http接口偶发415时用到的工具