一、什么是字典

字典是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。

上述代码运行结果:

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

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支持对字典遍历。字典可用于以各种方式存储信息,因此有多种遍历字典的方式:可遍历字典的所有键-值对、键或值。
1)遍历所有的键值对:用于遍历字典的 for 循环,可声明两个变量,用于存储键-值对中的键和值。

for key,value in student_A.items():# 注意,student_A后增加了.items() 用于读取字典中的每一项
print("\nKey: " + key) #打印出关键字
print("Value: " + value) #打印出关键字的值 for name, language in favor_languages.items():
print(name.title() + "'s favorite language is " +language.title() + ".") #遍历字典中的每个键-值对,并将键存储在变量name中,而将值存储在变量language 中

for name in favor_languages.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的字典及相关操作的更多相关文章

  1. python之字典的相关操作

    一.什么是字典 dict 用{}表示,用来存放键值对数据 {key:value} 键:具有唯一性,不能重复,不可变 必须是可哈希的(不可变的数据类型) 字典是无序的,没有索引 值: 没有任何限制 已知 ...

  2. Python中字典的相关操作

    1. Python类似于Java中的哈希表,只是两种语言表示的方式是不一样的,Python中的字典定义如下: 在Python中是一种可变的容器模型,它是通过一组键(key)值(value)对组成,这种 ...

  3. Python 基础之集合相关操作与函数和字典相关函数

    一:集合相关操作与相关函数 1.集合相关操作(交叉并补) (1)intersection() 交集 set1 = {"one","two","thre ...

  4. python数据类型:字典dict常用操作

    字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存的: Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的. Value:任意数据(int,str,boo ...

  5. python对数据类型的相关操作

    一.int的相关操作 int只有一个相关操作,bit_length()   用于计算一个数字的二进制长度 二.bool的相关操作 1.把数字转换成bool,除了0,返回的都是True a = 10 p ...

  6. day07-Python运维开发基础(深/浅拷贝、字典/集合/相关操作)

    1. 深拷贝与浅拷贝 # ### 深拷贝 和 浅拷贝 """ a = 7 b = a a = 8 print(b) lst1 = [1,2,3] lst2 = lst1 ...

  7. 026.Python面向对象类的相关操作以及对象和类的删除操作

    类的相关操作 定义的类访问共有成员的成员和方法 定义的类动态添加公有成员的属性和方法 定义的类删除公有成员的属性和方法 1 定义一个基本的类 #定义一个类 class Plane(): #添加一个共有 ...

  8. 011.Python的列表的相关操作

    一 列表的相关操作 1.1  列表的拼接 lst1 = [1,2,3] lst2 = [4,5,6] res = lst1 + lst2 print(res) 执行 [root@node10 pyth ...

  9. Python字典及相关操作(内含例题)

    Python字典类型 今天将会介绍一种在python中十分常见的组合数据类型——字典 通过一些实例来理解字典中的常规操作 什么是字典类型? 列表中查找是通过整数的索引(元素在列表中的序号)来实现查找功 ...

随机推荐

  1. Django之 rest_framework (一基本组件)

    目录 RESTFUL 序列化 视图三部曲 认证与权限组件 解析器 分页 RESTFUL 一.什么是RESTFUL REST与技术无关代表的是一种软件架构风格,REST是Representational ...

  2. SpringDoc-OpenApi与Fastjson冲突——FastJsonHttpMessageConverter对String的默认处理

    我的项目中默认是这样使用FastJsonHttpMessageConverter的: @Override public void configureMessageConverters(List< ...

  3. TCP/IP协议 | TCP协议 | UDP协议 | 三次握手四次挥手

    TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP.SMTP.TCP.UDP.IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP ...

  4. 记录Markdown的学习

    目录 1. 引言 2. 标题 这是一级标题 这是二级标题 这是三级标题 这是四级标题 3. 文字相关 3.1 粗体 3.2 斜体 3.3 粗体和斜体 3.4 删除线 3.5 混合使用 3.6 反引号引 ...

  5. 什么是GUI?

    图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面.图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠 ...

  6. 什么是Java序列化,如何实现Java序列化?或者请解释Serializable接口的作用?

    象序列化的目标是将对象保存到磁盘中,或允许在网络中直接传输对象,对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久保存在磁盘上,通过网络将这种二进制流传输到另 ...

  7. JS的Event各种属性级target/currentTarget/relatedTarget各种目录的解释

    1.Event属性解释:https://developer.mozilla.org/zh-CN/docs/Web/API/Event 2.Event.target/currentTarget/rela ...

  8. 解释 Spring 框架中 bean 的生命周期?

    Spring 容器 从 XML 文件中读取 bean 的定义,并实例化 bean. Spring 根据 bean 的定义填充所有的属性. 如果 bean 实现了 BeanNameAware 接口,Sp ...

  9. 解决MySQL报错ERROR 2002 (HY000)

    今天在为新的业务线搭架数据库后,在启动的时候报错 root@qsbilldatahis-db01:/usr/local/mysql/bin# ./mysql ERROR 2002 (HY000): C ...

  10. 【Python自动化Excel】Python与pandas字符串操作

    Python之所以能够成为流行的数据分析语言,有一部分原因在于其简洁易用的字符串处理能力. Python的字符串对象封装了很多开箱即用的内置方法,处理单个字符串时十分方便:对于Excel.csv等表格 ...