【Python基础】字典类型

news2024/9/21 14:51:31

本文收录于 《Python编程入门》专栏,从零基础开始,分享一些Python编程基础知识,欢迎关注,谢谢!

文章目录

    • 一、前言
    • 二、Python 字典类型
        • 2.1 访问字典里的值
        • 2.2 修改字典
        • 2.3 删除字典元素
        • 2.4 字典键值的特性
        • 2.5 遍历字典
        • 2.6 字典内置函数
        • 2.7 字典内置的方法
    • 三、总结

一、前言

本文分享一些关于Python编程中的字典数据类型的知识。

  • 什么是Python?

    Python是由荷兰人吉多·范罗苏姆于1990年初设计的一门高级编程语言,该语言应用领域非常广泛,尤其在数据科学、人工智能、游戏开发等领域,它已经成为最受欢迎的程序设计语言之一,非常适合新手学习。

    Python语言标准库官方使用手册:https://docs.python.org/zh-cn/3/library/turtle.html#turtle-methods

  • Python语言有哪些特点?

    1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

    2.易于阅读:Python代码定义的更清晰。

    3.易于维护:Python的成功在于它的源代码是相当容易维护的。

    4.丰富的库:Python的最大的优势之一具有丰富的标准库,并且跨平台的,在UNIX,Windows和Mac兼容很好。

    5.面向对象:Python支持面向对象编程,在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。

    6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

    7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

    8.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

    在这里插入图片描述

二、Python 字典类型

字典(dictionary)类型是Python中的一种可变的数据类型,它用于存储键(key)和值(value)的映射关系。键必须是唯一的,而值可以是任何数据类型。

在这里插入图片描述

创建一个字典类型的变量,格式如下:

d = {key1 : value1, key2 : value2, key3 : value3 }

实例如下:

# 创建字典类型变量t1
t1 = {"name":"张三","age":"12","sex":"男"}
# 创建空的字典类型变量t2
t2 = {}

print("字典t1值为:",t1)
print("字典t2值为:",t2)

实例运行结果如下:

字典t1值为: {'name': '张三', 'age': '12', 'sex': '男'}
字典t2值为: {}
2.1 访问字典里的值

如果要访问字典的值,有两种方式。

方式一:使用 "变量名[“key”]”方式

实例如下:

t1 = {"name":"张三","age":"12","sex":"男"}
a = t1["name"]

print("字典变量中name值为:",a)

实例执行结果如下:

字典变量中name值为: 张三

方式二:使用“变量名.get(“key”)”方式

实例如下:

t1 = {"name":"张三","age":"12","sex":"男"}
a = t1.get("name")

print("字典变量中name值为:",a)

实例执行结果如下:

字典变量中name值为: 张三
2.2 修改字典

修改某个键对应的值,比如,修改name值为“李四”,实例如下:

t1 = {"name":"张三","age":"12","sex":"男"}
a = t1.get("name")
print("字典变量中name值为:",a)

#修改name值为“李四”
t1["name"] = "李四"

a = t1.get("name")
print("字典变量中name值为:",a)

实例运行结果如下:

字典变量中name值为: 张三
字典变量中name值为: 李四

添加新的键值对,实例如下:

t1 = {"name":"张三","age":"12","sex":"男"}

print("字典t1值为:",t1)

# 添加键值对phone
t1["phone"] = "15900001111"

print("修改后,字典t1值为:",t1)

实例运行结果如下:

字典t1值为: {'name': '张三', 'age': '12', 'sex': '男'}
修改后,字典t1值为: {'name': '张三', 'age': '12', 'sex': '男', 'phone': '15900001111'}
2.3 删除字典元素

可以删除单个键值对,可以清空整个字典,也可以删除字典对象。

实例如下:

t1 = {"name":"张三","age":"12","sex":"男","phone":"15900001111"}

print("当前字典t1值为:",t1)

# 删除键值对phone
del t1["phone"]

print("修改后,字典t1值为:",t1)

# 清空字典
t1.clear()
print("清空后,字典t1值为:",t1)

# 删除字典对象
del t1
print("删除后,字典t1值为:",t1)

实例运行结果如下:

当前字典t1值为: {'name': '张三', 'age': '12', 'sex': '男', 'phone': '15900001111'}
修改后,字典t1值为: {'name': '张三', 'age': '12', 'sex': '男'}
清空后,字典t1值为: {}

Traceback (most recent call last):
  File "script.py", line 18, in <module>
    print("删除后,字典t1值为:",t1)
NameError: name 't1' is not defined

Exited with error status 1

说明:由于删除了字典对象,所以最后打印时,提示错误。

2.4 字典键值的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

t1 = {"name":"张三","name":"李四","age":"12","sex":"男"}

print("当前字典t1值为:",t1)

实例运行结果如下:

当前字典t1值为: {'name': '李四', 'age': '12', 'sex': '男'}

2)键一般是数字或字符串类型,如果使用其他类型,则会提示错误。

实例如下:

#!/usr/bin/python

t1 = {"name":"张三","age":"12","sex":"男",[0,1]:"01"}

print("当前字典t1值为:",t1)

实例运行结果如下:

Traceback (most recent call last):
  File "script.py", line 3, in <module>
    t1 = {"name":"张三","age":"12","sex":"男",[0,1]:"01"}
TypeError: unhashable type: 'list'

Exited with error status 1
2.5 遍历字典

遍历字典数据,包括以下三种方式。

方式一:遍历字典的键,通过键获取值 dict.keys()。

实例如下:

t1 = {"name":"张三","age":"12","sex":"男"}

for k in t1.keys():
	print(k,t1[k])

实例运行结果如下:

name 张三
age 12
sex 男

方式二:遍历字典的值,使用dict.values()。

实例如下:

t1 = {"name":"张三","age":"12","sex":"男"}

for v in t1.values():
	print(v)

实例运行结果如下:

张三
12
男

方式三:直接获取键值对,使用dict.items()。

实例如下:

t1 = {"name":"张三","age":"12","sex":"男"}

for k,v in t1.items():
	print(k,v)

实例运行结果如下:

name 张三
age 12
sex 男
2.6 字典内置函数

字典中包含了以下内置函数:

在这里插入图片描述

实例如下:

t1 = {"name":"张三","age":"12","sex":"男"}

c = len(t1)

print("当前c值为:",c)


c = str(t1)

print("当前c值为:",c)


c = type(t1)


print("当前c值为:",c)

实例运行结果如下:

当前c值为: 3
当前c值为: {'name': '张三', 'age': '12', 'sex': '男'}
当前c值为: <class 'dict'>
2.7 字典内置的方法

字典中包含了以下内置方法:

在这里插入图片描述

1)其中,序号1到5项中函数使用,实例如下:

t1 = {"name":"张三","age":"12","sex":"男"}

t1.clear()

print("1.当前t1值为:",t1)

t1 = {"name":"张三","age":"12","sex":"男"}

t2 = t1.copy()

print("2.当前t2值为:",t2)


# 快速初始化一个字典,字典键为a,b,c,值为None
t2 = dict.fromkeys(['a', 'b', 'c'])

print("3.当前t2值为:",t2)

c = t1.get("name")
print("4.当前c值为:",c)

if "name" in t1:
	print("5.字典t1中包括key值name")

实例运行结果如下:

1.当前t1值为: {}
2.当前t2值为: {'name': '张三', 'age': '12', 'sex': '男'}
3.当前t2值为: {'a': None, 'b': None, 'c': None}
4.当前c值为: 张三
5.字典t1中包括key值name

2)其中,序号6项中函数使用,实例如下:

t1 = {"name":"张三","age":"12","sex":"男"}

for k,v in t1.items():
	print(k,v)

实例运行结果如下:

name 张三
age 12
sex 男

3)其中,序号7到12项中函数使用,实例如下:

#!/usr/bin/python

t1 = {"name":"张三","age":"12","sex":"男"}

c = t1.keys()
print("1.当前c值为:",c)

t1.setdefault("sex","男")

print("2.当前t1值为:",t1)

t2 = {"name":"李四","age":"13","sex":"女"}
t2.update(t1)
print("3.当前t2值为:",t2)

c = t1.values()
print("4.当前c值为:",c)

t1 = {"name":"张三","age":"12","sex":"男"}
t1.pop("name")
print("5.当前t1值为:",t1)

t1 = {"name":"张三","age":"12","sex":"男"}
t1.popitem()
print("6.当前t1值为:",t1)

实例运行结果如下:

1.当前c值为: dict_keys(['name', 'age', 'sex'])
2.当前t1值为: {'name': '张三', 'age': '12', 'sex': '男'}
3.当前t2值为: {'name': '张三', 'age': '12', 'sex': '男'}
4.当前c值为: dict_values(['张三', '12', '男'])
5.当前t1值为: {'age': '12', 'sex': '男'}
6.当前t1值为: {'name': '张三', 'age': '12'}

三、总结

以上介绍了一些关于Python编程中的字典数据类型的知识,并提供了对应的示例代码。希望对大家有帮助,谢谢。

如果您对文章中内容有疑问,欢迎在评论区进行留言,我会尽量抽时间给您回复。如果文章对您有帮助,欢迎点赞、收藏。您的点赞,是对我最大的支持和鼓励,谢谢 :-)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2101940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免费pdf转word软件,为你整理出8种方法,总有一个适合你

在日常办公和学习中&#xff0c;PDF文档因其格式稳定、不易修改的特性而广受欢迎。然而&#xff0c;有时我们需要对PDF内容进行编辑或格式调整&#xff0c;这时将其转换为Word文档便显得尤为重要。下面给大家介绍8种将PDF转换成Word的方法&#xff0c;包括在线网站、专业软件及…

第四篇——数学思维:数学家如何从逻辑出发想问题?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 数学思维中的很多方法能够让我们脱离事物的表象去直击本质通过本质进行逻…

在Linux中使用MySQL基础SQL语句及校验规则

卸载内置环境 查看是否存在MySQL ps axj | grep mysql关闭MySQL systemctl stop mysqld MySQL对应的安装文件 rpm -qa | grep mysql 批量卸载 rpm -qa | grep mysql | xargs yum -y remove 上传MySQL rz 查看本地yum源 ls /etc/yum.repos.d/ -a 安装MySQL rpm -ivh…

Linux:手搓shell

之前学了一些和进程有关的特性&#xff0c;什么进程控制啊进程替换啊&#xff0c;我们来尝试自己搓一个shell()吧 首先我们观察shell的界面&#xff0c;发现centos的界面上有命令提示符&#xff1a; [主机名用户名当前路径] 我们可以通过调用系统函数获取当前路径&#xff0…

C语言代码练习(第十二天)

今日练习&#xff1a; 28、&#xff08;指针&#xff09;将字符串 a 复制为字符串 b &#xff0c;然后输出字符串 b 29、改变指针变量的值 30、输入两个整数&#xff0c;然后让用户选择1或者2&#xff0c;选择1是调用 max &#xff0c;输出两者中的大数&#xff0c;选择2是调用…

Mac M1 安装Hadoop教程(安装包安装)

一、引言 前面一期&#xff0c;我分享了通过homebrew方式安装Hadoop&#xff0c;本期我将通过安装包方式介绍下hadoop如何安装。二、下载open jdk8 官方下载地址 注意如果是x86架构的苹果电脑&#xff0c;Architecture选择x86 64-bit或者 x86-32bit。 下载后&#xff0c;将得…

Axios前后端对接

前端&#xff1a; 通过GET获取元素&#xff1a; console.log(res),接收接口返回的数据并打印出来。 async:是异步的知识。 通过POST修改&#xff0c;更新元素&#xff1a; 后端&#xff1a; 通过前端从后端获取一个对象&#xff1a; 后端执行相应方法&#xff1a; 然后获取L…

Spring6学习笔记2:容器IoC

文章目录 3 容器&#xff1a;IoC3.1 IoC容器3.1.2 依赖注入3.1.3 IoC容器在Spring的实现 3.2 基于XML管理Bean3.2.1 搭建子模块spring6-ioc-xml3.2.2 实验一&#xff1a;获取bean①方式一&#xff1a;根据id获取②方式二&#xff1a;根据类型获取③方式三&#xff1a;根据id和类…

day-48 一个小组的最大实力值

思路 想把所有非零数相乘&#xff0c;再统计负数的个数&#xff0c;如果负数为奇数个&#xff0c;则把乘机除以最大的那个负数即为答案&#xff0c;如果为偶数个&#xff0c;那么乘机即为答案 解题过程 但要考虑特殊情况&#xff1a;1.只有零和一个负数&#xff0c;返回零 2.全…

深入浅出Stream流

Java 8的新特性之一就是流stream&#xff0c;配合同版本出现的 Lambda &#xff0c;使得操作集合&#xff08;Collection&#xff09;提供了极大的便利。 案例引入 在JAVA中&#xff0c;涉及到对数组、Collection等集合类中的元素进行操作的时候&#xff0c;通常会通过循环的…

cuda编程[1]:一二三维网格和块的核函数

目录 前言核函数一维二维三维结果分析 前言 所有的代码下载链接&#xff1a;code。以下代码展示了如何在 CUDA 中打印网格和线程的索引信息。代码包括一维、二维和三维的网格和块的设置&#xff0c;并定义了多个内核函数来输出当前的索引信息。 核函数 打印线程索引 __gl…

七、场景加载

一、新的场景加载方法 Unity在2023更新的一个方法 1、引用命名空间 2、调用代码 传入加载场景SO 注&#xff1a;此方法是 await 方法名 步骤&#xff1a;var s获取返回值&#xff1b;await返回加载内容&#xff1b;if(判断一下) 此时运行会出现&#xff1a;未卸载当前地图…

SPP/SPPF/Focal Module

一、在图像的分类任务重&#xff0c;卷积神经网络&#xff08;CNN&#xff09;一般含有5层&#xff1a; 输入层卷积层激活层池化层全连接层 全连接层通常要求输入为一维向量。在CNN中&#xff0c;卷积层和池化层的输出特征图会被展平&#xff08;flatten&#xff09;为一维…

华为云征文|华为云Flexus云服务器X实例部署Note Mark笔记工具

华为云征文&#xff5c;华为云Flexus云服务器X实例部署Note Mark笔记工具 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、Note Mark 介绍2.1 Note Mark 简介2.2 Note Mark 特点2.3 Note Mark 使…

iOS分渠道统计不再难,Xinstall帮你轻松搞定

在App推广和运营的过程中&#xff0c;iOS分渠道统计一直是一个令人头疼的问题。如何准确追踪各个渠道的推广效果&#xff1f;如何优化投放策略以提高转化率&#xff1f;这些问题困扰着无数推广者。今天&#xff0c;我们就来聊聊Xinstall这款强大的分渠道统计工具&#xff0c;看…

【自由能系列(中级)】自由能与变分自由能——从状态到配置的效益最大化【代码模拟】

自由能与变分自由能——从状态到配置的效益最大化 关键词提炼 #自由能 #变分自由能 #状态函数 #配置函数 #效益最大化 #物理系统 #优化问题 第一节&#xff1a;自由能与变分自由能的类比与核心概念 1.1 自由能与变分自由能的类比 自由能和变分自由能可以被视为物理系统的“…

Mysql高阶语句(1)

一、常用查询 1. 按关键字排序 使用 ORDER BY 语句对查询结果进行排序&#xff0c;可以按照一个或多个字段进行升序&#xff08;ASC&#xff09;或降序&#xff08;DESC&#xff09;排列 语法 SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC], c…

sqli-lab靶场学习(一)——Less1

前言 最近一段时间想切入安全领域&#xff0c;因为本身有做数据库运维工作&#xff0c;就打算从sql注入方向切入。而sql注入除了学习日常书本上的概念外&#xff0c;需要有个实践的环境&#xff0c;刚好看到sqli-lab这个靶场&#xff0c;就打算先用这个来学习。 安装部署 网上…

智能提醒助理系列-协作工具,一站式软件研发管理平台

本系列文章记录“智能提醒助理”wx公众号 建设历程。 一、需求分析 当前智能提醒产品体系为微信公众号小程序的模式。 以小程序为操作主体&#xff0c;公众号作为用户接收提醒的方式之一&#xff0c;还有短信和电话。 开发方式为自研&#xff0c;需要前端小程序服务端三方对…

天津自学考试转考流程及免冠照片处理方法说明

自学考试省际转考是指考生因为工作、生活或其他原因&#xff0c;需要将自学考试的考籍从一个省份转移到另一个省份继续参加自学考试的情况。在中国&#xff0c;自学考试是一种国家承认的学历教育形式&#xff0c;由各省、自治区、直辖市的教育考试机构负责组织实施。下面详细介…