Python入门(五):字典(Dict)的使用

简介: 在Python语言中内置的数据结构有:列表(list)、元组(tuple)、字典(dict)、集合(set), 这4种数据结构和基础数据类型(整数、浮点数等)统称为“内置类型”(Built-in Types)。字典(dict)是一种可变的容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,字典中的键必须是唯一的,即不能出现重复的键但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

在Python语言中内置的数据结构有:列表(list)、元组(tuple)、字典(dict)、集合(set), 这4种数据结构和基础数据类型(整数、浮点数等)统称为“内置类型”(Built-in Types)。字典(dict)是一种可变的容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,字典中的键必须是唯一的,即不能出现重复的键但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。


字典的基本格式为


dict1 = {key1 : value1, key2 : value2 }
复制代码


具体使用如下:


#声明一个字典
dict1={"语文":99,"数学":98,"英语":97}
dict1
输出:{'语文': 99, '数学': 98, '英语': 97}
#字典中的键可以是不同类型的,但需是不可变的数据类型,比如字符串,数字,元组等
dict1={"name":"张三",98:"成绩",("上海","中国"):"地址"}
dict1
输出:会报错“raceback (most recent call last):File "<stdin>", line 1, in <module> ypeError: unhashable type: 'list'”
#如果用可变的数据类型做键,比如list
dict1={"name":"张三",98:"成绩",["上海","中国"]:"地址"}
dict1
输出:{'name': '张三', 98: '成绩', ('上海', '中国'): '地址'}
#还可以创建空的字典
dict1={}
dict1
输出:{}
#还可以声明空value的字典,只要键,没有value,并且value的值可以是重复的,所以这里是重复的空value
dict1={"数学","语文","英语"}
dict1
输出:{'英语', '语文', '数学'}
#如果键重复,则后面的同样的键的值会覆盖前面的键的值
dict1={"语文":99,"语文":98,"英语":97}
dict1
输出:{'语文': 98, '英语': 97}
#对字典的操作,都是通过对键访问
#对于字典dict1={"语文":99,"语文":98,"英语":97},访问键为语文的值
dict1={"语文":99,"语文":98,"英语":97}
dict1["语文"]
输出:98
#还可以使用get(),get()方法其实就是根据 key 来获取 value,
#当使用方括号语法访问并不存在的 key 时,字典会引发 KeyError 错误;但如果使用 get() 方法访问不存在的 key,该方法会简单地返回 None,不会导致错误。
dict1={"语文":99,"语文":98,"英语":97}
print(dict1.get("语文"))
输出:98
#添加键值对,只需要对不存在的key进行赋值即可
dict1={"语文":99,"语文":98,"英语":97}
dict1["化学"]=89
dict1
输出:{'语文': 98, '英语': 97, '化学': 89}
#修改键值对的值,只需要对key进行重新赋值
dict1={"语文":99,"语文":98,"英语":97}
dict1["英语"]=150
dict1
输出:{'语文': 98, '英语': 150}
#还可以使用update()来对键值对进行修改了添加
#update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典。
# 在执行 update() 方法时,如果被更新的字典中已包含对应的 key-value 对,那么原 value 会被覆盖;
# 如果被更新的字典中不包含对应的 key-value 对,则该 key-value 对被添加进去。
dict1={"语文":99,"数学":98,"英语":97}
dict1.update({"语文":199,"化学":98})
dict1
输出:{'语文': 199, '数学': 98, '英语': 97, '化学': 98}
#删除字典键值对使用del
dict1={"语文":99,"语文":98,"英语":97}
del dict1["英语"]
dict1
输出:{'语文': 98, '英语': 97}
#还可以使用del删除字典
dict1={"语文":99,"语文":98,"英语":97}
del dict1
dict1
输出:"Traceback (most recent call last):File "<stdin>", line 1, in <module> NameError: name 'dict1' is not defined(dict1字典没有定義)"
#还可以使用clear()清空字典,
dict1={"语文":99,"语文":98,"英语":97}
dict1.clear()
dict1
输出:{} "输出一个空的字典,即dict1字典还在,只是没有了元素,不同于del"
#将字典转换成字符串
dict1={"语文":99,"语文":98,"英语":97}
str(dict1)
输出:"{'语文': 98, '英语': 97}"
#同样可以将字典转化成list
dict1={"语文":99,"语文":98,"英语":97}
list(dict1)
输出:['语文', '英语']
#items()、keys()、values() 分别用于获取字典中的所有 key-value 对、所有 key、所有 value。这三个方法依次返回 dict_items、dict_keys 和 dict_values 对象
#通过type可以返回变量类型
#字典的便利,传统的遍历只能输出键
dict1={"语文":99,"语文":98,"英语":97}
for item in dict1:
    print(item)
输出:语文 英语
#输出每个键值对
dict1={"语文":99,"语文":98,"英语":97}
d1= dict1.items();
print(type(d1))
输出:<class 'dict_items'>
for item in d1:
    print(item)
输出:('语文', 98)  ('英语', 97)
#输出每个值
dict1={"语文":99,"语文":98,"英语":97}
d1= dict1.values();
print(type(d1))
输出:<class 'dict_values'>
for item in d1:
    print(item)
输出:98 97
#输出每个键
dict1={"语文":99,"语文":98,"英语":97}
d1= dict1.keys();
print(type(d1))
输出:<class 'dict_keys'>
for item in d1:
    print(item)
输出:语文 英语
复制代码


以上就是python中列表的简单使用!

目录
相关文章
|
2月前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
|
30天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
3天前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
17 2
|
2天前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
1月前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
1月前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
38 7
|
1月前
|
开发者 Python
Python中的装饰器:从入门到实践
本文将深入探讨Python的装饰器,这一强大工具允许开发者在不修改现有函数代码的情况下增加额外的功能。我们将通过实例学习如何创建和应用装饰器,并探索它们背后的原理和高级用法。
44 5
|
1月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
76 3
|
1月前
|
Python
Python编程入门:从零开始的代码旅程
本文是一篇针对Python编程初学者的入门指南,将介绍Python的基本语法、数据类型、控制结构以及函数等概念。文章旨在帮助读者快速掌握Python编程的基础知识,并能够编写简单的Python程序。通过本文的学习,读者将能够理解Python代码的基本结构和逻辑,为进一步深入学习打下坚实的基础。