前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python】新华字典(bushi

【Python】新华字典(bushi

作者头像
謓泽
发布2022-12-12 15:31:06
2K0
发布2022-12-12 15:31:06
举报
文章被收录于专栏:【C】系列

🚀write in front🚀 🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅2021年度博客之星物联网与嵌入式开发TOP5~周榜63»总榜2159🏅 🆔本文由 謓泽 原创 CSDN首发🙉 如需转载还请通知 📝个人主页:打打酱油desu-CSDN博客🎓 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 📣系列专栏:【Python】系列_謓泽的博客-CSDN博客[〇~①]🎓 ✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩

文章目录↓

🔥『Python』字典🌹

 🚀write in front🚀

🥳 Dict 🥳字典类型

🥰 字典类型特性 

🥰 字典和列表区别

😋 字典的定义 

🥰 定义字典 查看 字典类型 

🥰 定义列表为字典的key 

😋 查询字典数据 

🥰 获取某个元素的值 

🥰 字典名[key] 

🥰 字典名.get(key) 

🥰 使用字典名.get(key)获取一个不存在的key 

🥰 使用字典名[key]获取一个不存在的key 

😋 for - 循环

😋 遍历字典,获取键值对的值 

🥰 输出字典中的键对值 

🥰 修改字典中key对应的元素 

🥰 增加字典中的键对值 

😋 删除键值对

🥰 pop() 方法删除具有指定键名的项

🥰 popitem() 方法删除最后插入的项目

🥰 del 关键字删除具有指定键名的项目

🥰 clear() 关键字清空字典

🥰 len()函数键值对统计 

🥰 update() 合并字典

😋 应用场景

🥳 字典的其它内置方法

🥳 Dict 🥳字典类型

字典类型可以存储任意的数据类型的对象,前面所讲过的那些都是可以的。你可以把它理解成可变容器模型,可以存储任意的类型对象。 字典的定义与列表、元组、集合都是不同的。 字典是除了列表以外python当中最灵活的数据类型。 字典的每个键值 key=>value(这个是字面形式上意思) 对用冒号 : 分割 每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。

  • 通常用来存储多个数据,描述一个物体的相关信息。
  • 说实在的我当初学这个就想到了C语言当中的结构体(╹ڡ╹ )

🔥注意: 在集合的定义当中,我们说到集合可以使用 set() 函数来进行定义,也可以使用 {} 来进行定义。但是,使用 {} 定义集合的时候,{} 中一定要有元素才可以,这样的定义才是集合类型。如果 {} 没有元素的话,那么此时定义的就是字典类型。 dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict


🥰 字典类型特性 

字典是没有顺序的,是任意对象的无序集合。 字典的键是唯一的,不能多次出现,多次出现时取最后一个值。 键是不可变的。 字典中的元素可增删。 因为没有顺序,所以不存在索引值。 🥰 字典和列表区别

  • 字典表示的是一个无序的对象集合的数据。
  • 列表表示的是一个有序的对象集合的数据。
  • 代指的是打印print()的情况。

😋 字典的定义 

字典是用 {} 来进行定义的,这个和集合是有相同之处的。已经提到过字典每个元素包含2个部分,他们分别是"键"和"值",键和值之间用 ":" 隔开,两个元素之间用","隔开。 字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中,格式如下所示↓

代码语言:javascript
复制
 d = {key1 : value1, key2 : value2, key3 : value3 }
 

  • 键 → key 是索引。
  • 值 → value 是数据。
  • 键 和 值 可以使用 冒号(:) 来进行分割。
  • 注意:键必须是唯一值。
  • 键 可以取任何的数据类型,但是键只能使用字符串、数字或者元组。注意:字典的 key(键) 不能被定义成列表!特别注意(ง •_•)ง

🥰 定义字典 查看 字典类型 

声明一个字典对象,有两个键值对。 示例代码如下 👇

代码语言:javascript
复制
dict1 = {'name':'张三','Age':18}
print(dict1)
dict2 = {'name':'张三',10086:'zgyd',(9,4):[9,4]} # 不同类型
print(dict2)
print(type(dict2)) # 查看数据类型

编译运行结果 👇  {'name': '张三', 'Age': 18} {'name': '张三', 10086: 'zgyd', (9, 4): [9, 4]} <class 'dict'> 字典的形式大致就是这样,每个元素对应两个部分,前面的为"键",后面的为"值"。 要注意键是不可以修改的,而值是可以变的,因此键要取不可变类型的数据。


🥰 定义列表为字典的key 

字典的 key(键) 不能被定义成列表! 示例代码如下 👇

代码语言:javascript
复制
dict0 = {[1,1]:'PY'name':'张三','Age':18}
print(dict0)

编译运行结果(❌) 👇    File "script.py", line 6     dict0 = {[1,1]:'PY'name':'张三','Age':18}                        ^ SyntaxError: invalid syntax Exited with error status 1


😋 查询字典数据 

字典数据的查询方式有两种,即通过键获取值和通过遍历的方式来获取字典内所有键对应的值。这两种方法都是可行的,根据你使用的场合来进行使用即可。 

🥰 获取某个元素的值 

语法如下:👇

代码语言:javascript
复制
字典名[key]
或者
字典名.get(key)

不同之处:获取字典的时候,如果不确定 key 对应键值对是否存在。我们可以使用 get() 方法取获取其对应值。如果 key 不存在的话,使用 get() 的方法就会返回的结果是 None,而使用 [key] 方法就会编译异常。


🥰 字典名[key] 

声明一个字典类型,存放小明的姓名、年龄、成绩、颜值。—  用字典名[key]方法 示例代码如下 👇 

代码语言:javascript
复制
xiaoming = {'name':'小明','age':18,'score':60,'face':70}
print(xiaoming['name'])
print(xiaoming['age'])
print(xiaoming['score'])
print(xiaoming['face'])

编译运行结果 👇  小明 18 60 70

🥰 字典名.get(key) 

声明一个字典类型,存放小明的姓名、年龄、成绩、颜值。—  用字典名.get(key)方法 示例代码如下 👇 

代码语言:javascript
复制
xiaoming = {'name':'小明','age':18,'score':60,'face':70}
print(xiaoming.get('name'))
print(xiaoming.get('age'))
print(xiaoming.get('score'))
print(xiaoming.get('face'))

编译运行结果 👇  小明 18 60 70 从这个结果我们不难发现出它们的结果都是一样的,但是我们都会通常使用 字典名[key] 的方法,因为它更加的方便。获取有的value。


🥰 使用字典名.get(key)获取一个不存在的key 

示例代码如下 👇 

代码语言:javascript
复制
xiaoming = {'name':'小明','age':18,'score':60,'face':70}
print(xiaoming.get('123456'))

编译运行结果 👇  None  既然出现.get(key)一定是有它的用处的,但是字典[key]实际上也可以做到它这样的功能。


🥰 使用字典名[key]获取一个不存在的key

使用字典名.get(key)从字典名.get(key) 从字典中获取一个不存在的 key 时,返回的是None的值。那么如果是使用字典名[key]是否还是None的值呢。让我们看看。

代码语言:javascript
复制
xiaoming = {'name':'小明','age':18,'score':60,'face':70}
print(xiaoming['123456'])

编译运行结果 👇  Traceback (most recent call last):   File "script.py", line 5, in <module>     print(xiaoming['123456']) KeyError: '123456' Exited with error status 1 从这里我们可以得出结论:在不确定 key 是否存在时候,从字典获取对应的值时,最好使用.get(key) 的形式。


😋 for - 循环

再说遍历字典,获取键值对的值。我们先来了解下什么是 for 循环。 for 循环是通过次数的大小来进行循环,通常我们会使用遍历序列或枚举以及迭代来进行循环。 for 循环的结构为: 

代码语言:javascript
复制
 for 迭代变量 in 对象:
     循环体

迭代变量在我们每一次循环中保存根据变量得到的值,对象既是有序的序列,可以是字符串、元组、列表,也可以是无序的序列,例如字典。而循环体则为一条或若干条会被重复执行的语句。 


😋 遍历字典,获取键值对的值 

获取字典当中所有的 key,可以直接遍历字典。

🥰 输出字典中的键对值 

for 进行遍历字典 示例代码如下 👇 

代码语言:javascript
复制
dict8 = {'a':2022,'b':1,'c':29}
for ikey in dict8:
	print(ikey,dict8[ikey])

编译运行结果 👇  a 2022 b 1 c 29 注意:如果你是print(ikey)它就只是会获取到键值,并不会获取到数据value。


🥰 修改字典中key对应的元素 

修改字典中某个键所对应值的内容,修改字典中指定的 key 对应的 value 值。 格式:字典名[对应key] = 修改内容 示例代码如下 👇 

代码语言:javascript
复制
dictnew = {'a':2,'b':2,'c':3}
print("修改之前:",dictnew)
dictnew['a'] = 1
print("修改之后:",dictnew)

编译运行结果 👇  修改之前: {'a': 2, 'b': 2, 'c': 3} 修改之后: {'a': 1, 'b': 2, 'c': 3} 


🥰 增加字典中的键对值 

字典中新建键值对和修改键对应的值操作方法都是一样的,即通过 key 取值,然后进行赋值。如果,这个 key 不存在的,即为添加键值对。如果 key 存在在其进行修改。  格式:字典名[添加key] = 添加值 示例代码如下 👇 

代码语言:javascript
复制
dictnew = {'1':1,'b':2,'c':3}
dictnew['d'] = 4
print(dictnew)

编译运行结果 👇  {'1': 1, 'b': 2, 'c': 3, 'd': 4} 

再举出一个示例例子:定义一个空字典,分别进行添加键对值。 🔥注意: 在重复添加同一个key键值的时候,注意下输出字典的内容。 示例代码如下 👇 

代码语言:javascript
复制
dictnew1 = {}
dictnew1['name'] = '小明'
dictnew1['age'] = 18
dictnew1['age'] = 16
print(dictnew1)

编译运行结果 👇  {'name': '小明', 'age': 16}  提示:字典中的键 key 是唯一值!当有重复对同一个键进行赋值的时候,键所对应的都是最后赋值的参数😮


😋 删除键值对

删除字典的键值方式有很多来介绍下。注意:remover()是无法在字典当中所进行删除的。

🥰 pop() 方法删除具有指定键名的项

示例代码如下 👇 

代码语言:javascript
复制
xiaoming =	{
  "name": "小明",
  "color": "blue",
  "age": 16
}
xiaoming.pop("color")
print(xiaoming)

编译运行结果 👇   {'name': '小明', 'age': 16}


🥰 popitem() 方法删除最后插入的项目

注意:在 3.7 之前的版本中,删除随机项目。

示例代码如下 👇 

代码语言:javascript
复制
thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.popitem()
print(thisdict)

编译运行结果 👇  {'brand': 'Porsche', 'model': '911'} 


🥰 del 关键字删除具有指定键名的项目

格式:del 字典名[key] 示例代码如下 👇 

代码语言:javascript
复制
xiaoming =	{
  "name": "小明",
  "color": "blue",
  "age": 16
}
del xiaoming['name']
print(xiaoming)

编译运行结果 👇  {'color': 'blue', 'age': 16}


🥰 clear() 关键字清空字典

示例代码如下 👇 

代码语言:javascript
复制
xiaoming =	{
  "name": "小明",
  "color": "blue",
  "age": 16
}
xiaoming.clear()
print(xiaoming)

编译运行结果 👇  {} 

🥰 len()函数键值对统计 

示例代码如下 👇 

代码语言:javascript
复制
xiaoming =	{
  "name": "小明",
  "color": "blue"
}

编译运行结果 👇  2 

🥰 update() 合并字典

示例代码如下 👇 

代码语言:javascript
复制
x = {"name":"小明","color":"red"}
temp_dict = {"年龄":18}
# 合并
x.update(temp_dict)

编译运行结果 👇  {"name":"小明","color":"red,"年龄":18"}


😋 应用场景

使用 多个键(key)值(value)对,存储描述一个物体的相关信息,描述更加复杂的数据信息。 将 多个字典 方在 一个列表 当中,在用上面我们所说的遍历,在循环体的内部对每个字典就可以进行相同的处理。 示例代码如下↓

代码语言:javascript
复制
Ti = [
    {"name":张三},
    {"name":李四},
    {},
]
 
for Tis in Ti:
    pass
    print(Tis)

编译运行结果 👇  {'name', '张三'} {'name': '李四'} {}


🥳 字典的其它内置方法

字典的语法当中,除了字典的定义和字典当中的查询,修改,增加,删除等等其实还有很多内置方法,再这里简单说下。 字典.key():获取字典中所有的key,注意是key不会获取键值。从中返回一个列表。 字典.values():获取字典中所有的值,但是不会获取键,和key()相反。从中返回一个列表。 update:字典1.update(字典2),用字典2的元素去更新字典1当中的元素,注意下它们的顺序。(如果字典2当中的键值对在字典1当中是不存在的则可以直接添加,如果存在的话那么就会用字典2的键key去覆盖字典1的键key) in 和 not in:判断字典中是否存在指定的键(key),存在为 Ture、不存在为 False 提示:字典中的键 key 是唯一值!当有重复对同一个键进行赋值的时候,键所对应的都是最后赋值的参数! 🔥注意:key是不能重复且不能作为列表的[]!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🥳 Dict 🥳字典类型
    • 🥰 字典类型特性 
      • 😋 字典的定义 
        • 🥰 定义字典 查看 字典类型 
        • 🥰 定义列表为字典的key 
      • 😋 查询字典数据 
        • 🥰 获取某个元素的值 
        • 🥰 字典名[key] 
        • 🥰 字典名.get(key) 
        • 🥰 使用字典名.get(key)获取一个不存在的key 
        • 🥰 使用字典名[key]获取一个不存在的key
      • 😋 for - 循环
        • 😋 遍历字典,获取键值对的值 
          • 🥰 输出字典中的键对值 
          • 🥰 修改字典中key对应的元素 
          • 🥰 增加字典中的键对值 
        • 😋 删除键值对
          • 🥰 pop() 方法删除具有指定键名的项
          • 🥰 popitem() 方法删除最后插入的项目
          • 🥰 del 关键字删除具有指定键名的项目
          • 🥰 clear() 关键字清空字典
          • 🥰 len()函数键值对统计 
          • 🥰 update() 合并字典
        • 😋 应用场景
        • 🥳 字典的其它内置方法
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档