当前位置: 首页 > news >正文

【第三章-基础】Python 字典

3. 字典

含义:不可变序列,无序序列,键值对存储

表示:字典用放在花括号{}中一系列键值对表示

字典的特点:
1.字典中的所有 元素都是一个key-value对,key不允许重复,value可以重复
2.字典的元素是无序的
3.字典中的key必须是不可变对象
4.字典也可以根据需要动态地伸缩
5.字典会浪费较大的内存,是一种使用空间换时间的数据结构

3.1 字典的创建
"""使用花括号创建字典"""
scores={"张三":100,"李四":10,"wangwu":99}
print(scores)"""使用dict()函数创建"""
student =dict(name="jacl",age=10)
print(student)# 创建空字典
d={}
print(d)
3.2 字典的获取 

1. 获取方法:[ ] 和 get()方法

"""如何获取字典中的值"""
scores={"张三":100,"李四":10,"wangwu":99}# 使用[]的方法
print(scores["张三"])# 使用get()方法print(scores.get("李四"))

注意事项:
1. [ ] 如果字典中不存在指定的Key,抛出keyError异常
2. get()方法取值,如果 字典中不存在指定的key,并不会抛出KeyError异常而是返回None,可以通过参数设置默认的value,以便指定的Key不存在时返回

##get()来访问值

方法get()的第一个参数用于指定健,是必不可少的,第二个健为指定健不存在时要返回的值,是可选的

2. 获取字典视图的三个方法
keys()--------->获取字典中所有的key
values()------->获取字典中所有value的值
items()-------->获取字典中所有的Key,value对

#  获取所有的keys值
scores={"张三":100,"李四":10,"wangwu":99}
keys=scores.keys()
print(keys)
print(list(keys))# 获取所有的values值
value=scores.values()
print(value)
print(list(value))# 获取所有的键值对item=scores.items()
print(item)
print(list(item))
3.3 字典的增删

# key存不存在的 判断
 in      指定的key在字典中存在返回TRUE
not  in  指定的key在字典中不存在返回TRUE

scores={"张三":100,"李四":10,"wangwu":99}
print("张三"in scores)
print("张三"not in scores)# 删除指定键值对
del scores["张三"]
print(scores)# 新增元素
scores["1"]=98
print(scores)# 更改元素
scores["1"]=94
print(scores)

结果

True
False
{'李四': 10, 'wangwu': 99}
{'李四': 10, 'wangwu': 99, '1': 98}
{'李四': 10, 'wangwu': 99, '1': 94}

3.4 遍历

说明:遍历数组、可以通过keys()方法对所有健进行遍历,values()对所有值进行遍历,item()对所有键值对进行遍历

scores={"张三":100,"李四":10,"wangwu":99}
# 字典元素的遍历
for item in scores:print(item,scores[item])print("************************")# 使用keys(),只对健进行遍历,输出
for i in scores.keys():print(i)
print("************************")# 使用values()只对值进行遍历,输出
for i in scores.values():print(i)# 使用items()对键值对进行遍历,可以声明两个变量,用于存储键值对中的健和值
print("************************")
for i,j in scores.items():print(i,j)

结果:

张三 100
李四 10
wangwu 99
************************
张三
李四
wangwu
************************
100
10
99
************************
张三 100
李四 10
wangwu 99

3.5 嵌套

##字典列表

说明:先创建几个字典,然后再创建一个列表,将字典存储到列表中

# 声明一个空数组进行接收
dog=[]# 创建多个狗
for i in range(10):new_dog={"color":'Red',"type":"jiwaa",'age':3}dog.append(new_dog)# 截取前五个
for j in dog[:5]:print(j)

结果:

{'color': 'Red', 'type': 'jiwaa', 'age': 3}
{'color': 'Red', 'type': 'jiwaa', 'age': 3}
{'color': 'Red', 'type': 'jiwaa', 'age': 3}
{'color': 'Red', 'type': 'jiwaa', 'age': 3}
{'color': 'Red', 'type': 'jiwaa', 'age': 3}

注意:可配合随机数,进行随机生成

##在字典中嵌套列表

# 在字典中嵌套列表
dog={"color":["red","green",'black','white'],"name":["1",'2','3','4']
}for item in dog["color"]:print(item)

解释:字典的每一个值,都是一个列表,所以可以直接遍历

3.5 字典生成式

内置函数zip():用于将可迭代对象作为参数,将对象中的元素打包成为一个元祖,然后返回由这些元祖组成的列表

items=["fruits","books","other"]
prices=[96,97,98]
d=zip(items,prices)
print(list(d))   #利用列表进行输出

结果:[('fruits', 96), ('books', 97), ('other', 98)]

http://www.dtcms.com/a/272912.html

相关文章:

  • 3D Surface Reconstruction with Enhanced High-Frequency Details
  • 【成长】-进步论
  • GlobalMapper用DSM转DEM
  • Zotero+zotmoov+坚果云同步
  • mysql索引底层原理
  • 智慧城市网络架构升级与SD-WAN技术应用实践
  • C++11 划分算法原理解析:is_partitioned、partition_copy与partition_point
  • 设备管理系统架构演进:从本地化部署到云端协同的 2025 新趋势
  • [Java实战]Spring Boot 3实战:使用QQ邮箱发送精美HTML邮件(四十三)
  • k8s之Helm详细讲解
  • 壁仞 k8s 兼容
  • 强化学习算法基准测试:6种算法在多智能体环境中的表现实测
  • 【oscp】超长攻击链vulhub靶机,TommyBoy1dot0
  • 开关电源和线性电源Multisim电路仿真实验汇总——硬件工程师笔记
  • 网络安全(初级)(1)
  • 【数据结构与算法】数据结构初阶:动态顺序表各种方法(接口函数)复盘与整理
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘logging’问题
  • 高并发导致重复key问题--org.springframework.dao.DuplicateKeyException
  • 【科研绘图系列】R语言绘制相关系数图
  • easyui碰到想要去除顶部栏按钮边框
  • “SRP模型+”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI指数生态质量评价
  • brpc中的bthread_jump_fcontext汇编函数到底发生了什么?
  • three2.0
  • 鸿蒙开发文档
  • C语言易错点整理(一)
  • 开源无线硬件系列射频收发器模块 RFMC6000
  • 亚马逊运营中出单词反查功能的深度应用
  • 【fitz+PIL】PDF图片文字颜色加深
  • Jenkins邮件通知终极指南:Email Extension Plugin高级配置
  • 电机试验平台的千年进化史