python创建字典及相关管理操作


Posted in Python onApril 13, 2022

什么是字典

字典是Python中最强大的数据类型之一,也是Python语言中唯一的映射类型。映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表,字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。

字典类型与序列类型的区别:
1.存取和访问数据的方式不同。
2.序列类型只用数字类型的键(从序列的开始按数值顺序索引);
3.映射类型可以用其他对象类型作键(如:数字、字符串、元组,一般用字符串作键),和序列类型的键不同,映射类型的键直
4.接或间接地和存储数据值相关联。
5.映射类型中的数据是无序排列的,这和序列类型是不一样的,序列类型是以数值序排列的。
6.映射类型用键直接“映射”到值。

总之,Python中字典是一系列"键-值"对,每个键都与一个值关联,可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值。

一个简单字典的示例:

student_A ={'name':'Allen','age':'14','grade':'8'} # 定义一个字典
print(student_A['name'])
print(student_A['age'])
print(student_A['grade'])

new_names = student_A['name']
new_ages = student_A ['age']
new_grades= student_A ['grade']
print("The student_A's name is " + new_names.title()+ ",and she is "+str(new_ages) +" years old,and Grade "+str(new_grades))

其中,student_A={'name':'Allen','age':'14','grade':'8'}  定义了一个名为student_A的字典,该字典中有三个关键字'name','age'和'grade',对应的值分别为'Allen','14'和'8'

student_A['name'] 表示引用的是student_A['name']的值,即Allen,也就是语句:new_names = student_A['name'] 和new_names='Allen'是一样的。

创建一个字典

1)如上述代码,直接定义一个字典,student_A ={'name':'Allen','age':'14','grade':'8'},列出各关键字和对应的值;
2)先使用一对花括号定义一个字典,再分行添加各个分键值对:

student_B={}
student_B['name']='Jack'
student_B['age']=13
student_B['grade']=7

在原有字典上添加“键-值”对

由于字典是可变的,能存储任意个数对象,因此可随意添加

student_A['address'] ="Hubei" #增加了一个地址健值对,由原来的3个变成4个
student_A['PhoneNumber'] ="18012345678"#增加了一个电话健值对,字典student_A里由4个变成5个
print(student_A)  #键 — 值对的排列顺序与添加顺序不同。Python不关心键-值对的添加顺序,而只关心键和值之间的关联关系

即在student_A字典原有3个关键字的基础上,增加了两个关键字address和PhoneNumber。

上述代码运行结果:

python创建字典及相关管理操作

修改字典中的值

要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。

student_B['age']=14  #修改student_B的age值为14
print(student_B)
print("\n")

删除键-值对

对于字典中不再需要的信息,可使用 del 语句将相应的键-值对彻底删除。使用 del 语句时,必须指定字典名和要删除的键。

del student_A['address']
print(student_A)

由类似对象组成的字典

字典存储的是一个对象(学生A或B)的多种信息,但也可以使用字典来存储众多对象的同一种信息

favor_languages = {'jack': 'python','sarah': 'c','lucy': 'ruby','phil': 'python'}
print(favor_languages['lucy'])

遍历字典

一个Python字典可能只包含几个键-值对,也可能包含数百万个键-值对。鉴于字典可能包含大量的数据,Python支持对字典遍历。字典可用于以各种方式存储信息,因此有多种遍历字典的方式:可遍历字典的所有键-值对、键或值。

for key,value in student_A.items():# 注意,student_A后增加了.items() 用于读取字典中的每一项
    print("\nKey: " + key)    #打印出关键字
    print("Value: " + value)  #打印出关键字的值
    
for name, language in favor_languages.items():     #遍历所有的键值对:用于遍历字典的for循环,可声明两个变量,用于存储键-值对中的键和值
    print(name.title() + "'s favorite language is " +language.title() + ".") #遍历字典中的每个键-值对,并将键存储在变量name中,而将值存储在变量language 中 
for name in favor_languages.keys():#遍历字典中的所有键,在不需要使用字典中的值时,方法 keys() ,注意后面增加的keys()
    print(name.title())  
print("\n")

my_friends = ['jack', 'sarah']
for name in favor_languages.keys():
    print(name.title())
        
    if name in my_friends: 
        print(" Hi " + name.title() +", I see your favorite language is " +favor_languages[name].title() + "!")

具体运行结果:

python创建字典及相关管理操作

按顺序遍历字典中的所有键:字典记录键和值之间的关联关系,但获取字典的元素的顺序是不可预测的,要以特定的顺序返回元素,可对返回的键进行排序可使用函数 sorted() 来进行排序。

favor_languages= {'jack': 'python','polo': 'java','lucy': 'ruby','Albet': 'java'}
#使用函数 sorted() 来获得按特定顺序排列的键列表
for name in sorted(favor_languages.keys()): #对关键字进行排序
    print(name.title() + ", thank you !")
print("\n")     
#遍历字典中的所有值:如果主要获取的是字典包含的值,可使用方法 values()
for language in favor_languages.values():
    print(language.title())
print("\n")    
#使用集合(set)消除重复项  
for language in set(favor_languages.values()):
    print(language.title())

运行结果如下:

python创建字典及相关管理操作

 到此这篇关于详解python的字典及相关操作的文章就介绍到这了!

Python 相关文章推荐
浅谈python 四种数值类型(int,long,float,complex)
Jun 08 Python
Python中文分词实现方法(安装pymmseg)
Jun 14 Python
python基于itchat实现微信群消息同步机器人
Feb 27 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
Python中Numpy包的安装与使用方法简明教程
Jul 03 Python
python正则表达式之对号入座篇
Jul 24 Python
一篇文章弄懂Python中所有数组数据类型
Jun 23 Python
PyCharm如何导入python项目的方法
Feb 06 Python
Python3.7安装pyaudio教程解析
Jul 24 Python
python实现图片转换成素描和漫画格式
Aug 19 Python
Python办公自动化PPT批量转换操作
Sep 15 Python
python微信智能AI机器人实现多种支付方式
Python中request的基本使用解决乱码问题
Apr 12 #Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
Python安装使用Scrapy框架
Python使用华为API为图像设置多个锚点标签
python实现手机推送 代码也就10行左右
Apr 12 #Python
Python内置包对JSON文件数据进行编码和解码
You might like
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
PHP实现的曲线统计图表示例
2016/11/10 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
js 设置选中行的样式的实现代码
2010/05/24 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
2013/12/08 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
在微信小程序中保存网络图片
2019/02/12 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
python使用PyFetion来发送短信的例子
2014/04/22 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
2020/06/10 Python
如何利用python进行时间序列分析
2020/08/04 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
Ryderwear美国官网:澳大利亚高端健身训练装备品牌
2018/04/24 全球购物
事业单位个人应聘自荐信
2013/09/21 职场文书
个人总结与自我评价
2014/09/18 职场文书
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
还款承诺书范本
2015/01/20 职场文书
中学生自我评价范文
2015/03/03 职场文书
初中重阳节活动总结
2015/05/05 职场文书
新娘父亲婚礼致辞
2015/07/27 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书