一篇文章带你了解python字典基础
作者:wakeyo_J 发布时间:2021-05-02 23:08:23
目录
1. 字典基础知识
字典的基本格式表示
字典的键、值设置要求
1)键的设置要求
2)值的设置要求
2. 字典元素增加
1.利用赋值给字典增加元素
2.利用setdefault()方法给字典增加元素
3. 字典值查找
1.字典名+[key]查找
2.利用get()方法查找
4. 字典值修改
1.利用赋值修改键对应的值
2.利用update()方法修改键对应的值
5. 字典元素删除
1.利用del函数删除
2.利用pop()方法删除
3.利用popitem()方法删除
6. 字典遍历操作
1.遍历所有键值对:
遍历所有键
遍历所有值
7. 字典其他操作方法
1.in成员操作
2.clear()方法
3.copy()方法
4.fromkeys()方法
总结
1. 字典基础知识
字典:是可变的无序集合,以键值对为基本元素可以存储各种数据类型的集合,用大括号({})表示字典的开始和结束,元素之间用半角逗号(,)分隔。键值对,由键(key)和值(value)组成,中间用冒号(:)分隔。如:“wky”:28。字典属于典型的一对一的映射关系的数据类型。
字典可以理解为“映射”,映射是一种键(索引)和值(数据)的对应
字典的基本格式表示
>>> #空字典
>>> {}
{}
>>> #定义一个元素的字典变量
>>> d1 = {"wky":28}
>>> len(d1)
1
>>> d2 = {"wky":1,"lyj":2}
>>> len(d2)
2
>>>
字典的键、值设置要求
1)键的设置要求
(1)唯一性:一个字典对象里所有的键必须是唯一的。
>>> d3={1:"wky",2:"lyj",2:"lyj"}
>>> len(d3)
2
>>> d3={1:"wky",2:"lyj",2:"wa"}
>>> len(d3)
2
在定义字典变量时,python允许输入重复的元素,但是在调用时,python只会保留最后一个键相同的元素。为了避免出现问题,在定义字典对象时,应该养成严格定义每个元素键并保证键的唯一性的良好习惯。
(2)不可变性,字典在使用过程中不能对元素的键进行直接修改。
>>> d2={"wkys":1,"lyj":2} #wky错误写成wkys
2)值的设置要求
2. 字典元素增加
1.利用赋值给字典增加元素
>>> d2 = {"wky":1,"lyj":2}
>>> d2["wa"]=3
>>> d2
{'wky': 1, 'lyj': 2, 'wa': 3}
>>>
上述增加元素的前提是:要求字典里没有新增的键,否则会修改指定键的值。
列表变量带中括号与字典变量带中括号之间的区别:
(1)列表:L[x]=value的方法,修改对应的元素,x为指定的下标
(2)字典:D[x]=value的方法,为字典增加新元素,k为指定的键,且k在字典对象中不存在。
2.利用setdefault()方法给字典增加元素
setdefault()使用格式为D.setdefault(k[,d])。D代表字典对象,k代表新增键,d代表新增键对应的值(若不提供值,则默认值为None)
>>> d1={"wky":1,"lyj":2}
>>> d1.setdefault("wa",10)
10
>>> d1
{'wky': 1, 'lyj': 2, 'wa': 10}
>>> d1.setdefault('wake')
>>> d1
{'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>>
用setdefault()方法新增键值对时,若指定键已经存在,则只显示已经存在键的值。
3. 字典值查找
1.字典名+[key]查找
>>> d2={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>> d2["lyj"]
2
若指定的键在字典对象中不存在会报错。
>>> d2={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>> d2['w']
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
d2['w']
KeyError: 'w' #提示键出错
2.利用get()方法查找
get()方法使用格式D.get(k[,d]),D代表字典对象,k为指定的键,d为键对应的值。
>>> d2={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>> d2.get("wky")
1
>>> #查找字典中不存在的键
>>> d2.get('w')
>>>
get()方法指定的键在字典中不存在时返回空值。
4. 字典值修改
1.利用赋值修改键对应的值
>>> d2={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>> d2["wake"]=99
>>> d2
{'wky': 1, 'lyj': 2, 'wa': 10, 'wake': 99}
>>>
2.利用update()方法修改键对应的值
update()方法的使用格式D.update(d1),D代表要更新的字典对象,d1为提供更新内容的字典。若d1中提供的键在D中,则更新D里对应的键值,若不存在,则增加键值对。
1)更新字典里键对应的值
>>> d1={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>> d2={"wky":10,"wake":89}
>>> d1.update(d2)
>>> d1
{'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
2)新增键值对
>>> d1={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>> d1.update({"wakeyo":100})
>>> d1
{'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89, 'wakeyo': 100}
5. 字典元素删除
1.利用del函数删除
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89, 'wakeyo': 100}
>>> del(d1["wakeyo"])
>>> d1
{'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>>
2.利用pop()方法删除
pop()方法使用格式D.pop(k[,d]),D代表字典,k代表需要删除的元素的键,d为键对应的值(可选)。
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> pl=d1.pop('wake')
>>> pl
89
>>>
3.利用popitem()方法删除
popitem()方法使用格式D.popitme(),D代表字典,随即返回一个键值对元组,并在字典里删除对应的元素。
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> k1,v1=d1.popitem()
>>> k1,v1
('wake', 89)
>>> d1
{'wky': 10, 'lyj': 2, 'wa': 10}
>>> t1=d1.popitem()
>>> t1
('wa', 10)
>>> type(t1)
<class 'tuple'>
>>>
del函数、pop()方法、popitem()方法若对不存在的元素进行操作时,都将报错。
6. 字典遍历操作
1.遍历所有键值对:
利用items()方法遍历所有键值对
items()方法使用格式D.items(),D代表字典,以元组形式返回字典的所有元素。
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> for get_l in d1.items():
print(get_l)
#结果
('wky', 10)
('lyj', 2)
('wa', 10)
('wake', 89)
>>> d1.items()
dict_items([('wky', 10), ('lyj', 2), ('wa', 10), ('wake', 89)])
>>> type(d1.items)
<class 'builtin_function_or_method'>
>>>
遍历所有键
1)利用字典变量循环遍历
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> for gets in d1:
print(gets)
#结果
wky
lyj
wa
wake
2)利用keys()方法获取字典键
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> for get_l in d1.keys():
print(get_l)
#结果
wky
lyj
wa
wake
遍历所有值
1)通过键遍历值
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> for get_key in d1:
print(d1[get_key])
#结果
10
2
10
89
2)利用values()方法获取字典值
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> for get_v in d1.values():
print(get_v)
#结果
10
2
10
89
7. 字典其他操作方法
1.in成员操作
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> if "wky" in d1.keys():
print("wky在字典里")
else:
print("wky不在字典里")
wky在字典里
2.clear()方法
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> d1.clear()
>>> d1
{}
3.copy()方法
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> d2=d1.copy()
>>> d2
{'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> id(d1)
2432414090296
>>> id(d2)
2432414587208
>>> d3=d2
>>> id(d3)
2432414587208
通过copy()方法的复制,可以避免字典变量之间直接赋值指向同一个地址。
4.fromkeys()方法
fromkeys()方法使用格式D.fromkeys(iterable),D代表字典,iterable代表列表对象,用于指定字典键,生成的D的键对应的值默认为None。
>>> d1={}.fromkeys(["wky","lyj","wa"])
>>> d1
{'wky': None, 'lyj': None, 'wa': None}
>>>
来源:https://blog.csdn.net/m0_55697123/article/details/119153240
猜你喜欢
- 一、下载termux直接搜索Termux,进入官网: 点击箭头所指的标志,进入页面,往下划到下载版本,直接下最新版本,不推荐下载F
- 如下所示:INPUT = c_int * 4# 实例化一个长度为2的整型数组input = INPUT()# 为数组赋值(input这个数组
- oracle远程连接数据库,需要配置本地服务,具体步骤如下:1.2.添加新的服务3.输入服务名(例如:orcl3即服务器数据库名)4.选择T
- 安装wgetyum -y install wget创建一个download目录用于下载各种安装包mkdir download切换到刚创建的d
- 问题你想改变对象实例的打印或显示输出,让它们更具可读性。解决方案要改变一个实例的字符串表示,可重新定义它的 __str__() 和 __re
- 说到关于请求方法的分支,让我们来看一下可以用什么好的方法来实现它。 考虑这个 URLconf/view 设计:# urls.pyfrom d
- 我听说在ASP里,可以不用DSN来连接EXCEL,请问如何实现?确实ASP提供了替代DSN的其他方法,甚至可以在运行时建立连接看看下面的范例
- unittest是python的一个单元测试框架关于断言它是用于对一个确定结果和预测结果的一种判断,如果结果正确无任何返回效果,如果结果错误
- perl - Practical Extraction and Report Language,Perl有很多命令行参数,通过它可以让你的程
- 前言最近在开发项目时遇到了发现一个问题,gorm虽然可以自动帮你维护 created_at、updated_at、deleted_at这些关
- 前言 大家周末好,今天给大家带来的是Python当中生成器和迭代器的使用。我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一
- ASP访问数据库的方式有哪些?在ASP中可以通过三种方式访问数据库:1、IDC(Internet Database Connec
- 这篇文章主要介绍了Python接口自动化判断元素原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- Pycharm中SQL语句提示SQL Dialect is Not Configured使用Pycharm进行数据库查询时,SQL语句经常提
- 识别MNIST已经成了深度学习的hello world,所以每次例程基本都会用到这个数据集,这个数据集在tensorflow内部用着很好的封
- 上次谈到客户端和服务端的编码“陷阱”,其中对url编码只是提及带过,并没有做深入讨论,事实上由于浏览器环境的复杂和不一致性,我们也很容易掉进
- 在部署一套内网测试环境时,频繁宕机,开机后不断的吃内存,重启apache之后内存占用会不停的上涨,直到swap用完,直到死机,由于是内网环境
- 对数据库的备份是网站管理人员的必修课,那么常用的数据库备份方式有哪些呢?应如何选择?数据库备份有四种类型,分别应用于不同的场合,下面简要介绍
- 编码问题response = requests.get(URL, params=params, he
- 代码如下:<% '功能:取得文件扩展名 Function getFileExt(sFileNam