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

【Python】基础知识四

> 作者:დ旧言~
> 座右铭:松树千年终是朽,槿花一日自为荣。

> 目标:了解Python的字典、文件。

> 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安!

> 专栏选自:Python基础知识_დ旧言~的博客-CSDN博客

> 望小伙伴们点赞👍收藏✨加关注哟💕💕

一、字典


1.1、字典是什么

字典概念:

  • 字典是一种存储 键值对 的结构.
  • 把 键(key) 和 值(value) 进行一个一对一的映射, 然后就可以根据键, 快速找到值.

1.2、创建字典

使用语法:

  • 使用 { } 表示字典. 
  • 使用dict()函数创建字典,适用动态创建情况。

  • 也可以在创建的同时指定初始值
  • 键值对之间使用 , 分割键和值之间使用 : 分割. (冒号后面推荐加一个空格).

使用 print 来打印字典内容:

为了代码更规范美观, 在创建字典的时候往往会把多个键值对, 分成多行来书写:

student = {
    'id': 1,
    'name': 'zhangsan'
} # 创建字典并分行初始化
print(student) # 打印字典数据

最后一个键值对, 后面可以写 , 也可以不写:

student = {
    'id': 1,
    'name': 'zhangsan', # 最后一个键值对加,
} # 创建字典并分行初始化
print(student) # 打印字典数据

1.3、查找 key

使用 in 可以判定 key 是否在 字典 中存在. 返回布尔值:

使用 [ ] 通过类似于取下标的方式, 获取到元素的值. 只不过此处的 "下标" 是 key. (可能是整数, 也可能是字符串等其他类型):

如果 key 在字典中不存在, 则会抛出异常:

1.4、新增/修改元素

概念:

  • 使用 [ ] 可以根据 key 来新增/修改 value.

如果 key 不存在, 对取下标操作赋值, 即为新增键值对:

如果 key 已经存在, 对取下标操作赋值, 即为修改键值对的值:

1.5、删除元素

使用 pop 方法根据 key 删除对应的键值对:

1.6、遍历字典元素

直接使用 for 循环能够获取到字典中的所有的 key, 进一步的就可以取出每个值了:

1.7、取出所有 key 和 value

使用 keys 方法可以获取到字典中的所有的 key:

  • 此处 dict_keys 是一个特殊的类型, 专门用来表示字典的所有 key. 大部分元组支持的操作对于dict_keys 同样适用. 

使用 values 方法可以获取到字典中的所有 value:

  • 此处 dict_values 也是一个特殊的类型, 和 dict_keys 类似.

使用 items 方法可以获取到字典中所有的键值对:

1.8、合法的 key 类型

概念:

  • 不是所有的类型都可以作为字典的 key.
  • 字典本质上是一个 哈希表, 哈希表的 key 要求是 "可哈希的", 也就是可以计算出一个哈希值.

可以使用 hash 函数计算某个对象的哈希值,但凡能够计算出哈希值的类型, 都可以作为字典的 key:

列表无法计算哈希值:

字典也无法计算哈希值:

二、文件


2.1、文件是什么

概念:

  • 变量是把数据保存到内存中. 如果程序重启/主机重启, 内存中的数据就会丢失.
  • 要想能让数据被持久化存储, 就可以把数据存储到硬盘中. 也就是在 文件 中保存.

通过文件的后缀名, 可以看到文件的类型. 常见的文件的类型如下:

  • 文本文件 (txt)
  • 可执行文件 (exe, dll)
  • 图片文件 (jpg, gif)
  • 视频文件 (mp4, mov)
  • office 文件 (.ppt, docx)
  • ......

2.2、文件路径

概念:

一个机器上, 会存在很多文件, 为了让这些文件更方面的被组织, 往往会使用很多的 "文件夹"(也叫做目录)来整理文件.实际一个文件往往是放在一系列的目录结构之中的.为了方便确定一个文件所在的位置使用 文件路径 来进行描述.

例如, 上述截图中的 QQ.exe 这个文件, 描述这个文件的位置, 就可以使用路D:\program\qq\Bin\QQ.exe 来表示:

  • D: 表示 盘符. 不区分大小写.
  • 每一个 \ 表示一级目录. 当前 QQ.exe 就是放在 "D 盘下的 program 目录下的 qq 目录下的 Bin 目录中" .
  • 目录之间的分隔符, 可以使用 \ 也可以使用 / . 一般在编写代码的时候使用 / 更方便.

2.3、文件操作

概念:

使用文件, 主要是通过文件来保存数据, 并且在后续把保存的数据读取出来,但是要想读写文件, 需要先 "打开文件"读写完毕之后还要 "关闭文件".

2.3.1、打开文件

使用内建函数 open 打开一个文件:

  • 第一个参数是一个字符串, 表示要打开的文件路径
  • 第二个参数是一个字符串, 表示打开方式. 其中 r 表示按照读方式打开. w 表示按照写方式打开. a表示追加写方式打开.
  • 如果打开文件成功, 返回一个文件对象. 后续的读写文件操作都是围绕这个文件对象展开.
  • 如果打开文件失败(比如路径指定的文件不存在), 就会抛出异常. 

2.3.2、关闭文件

使用 close 方法关闭已经打开的文件:

f.close() # 关闭文件

一个程序能同时打开的文件个数, 是存在上限的:

  • 如上面代码所示, 如果一直循环的打开文件, 而不去关闭的话, 就会出现上述报错.
  • 当一个程序打开的文件个数超过上限, 就会抛出异常.

2.3.3、写文件

文件打开之后, 就可以写文件了:

  • 写文件, 要使用写方式打开, open 第二个参数设为 'w'
  • 使用 write 方法写入文件. 
f = open('d:/test.txt', 'w')  # 以写的方式打开文件
f.write('hello')  # 向文件中写入hello字符串
f.close()  # 关闭文件

2.3.4、读文件

读文件内容需要使用 'r' 的方式打开文件,使用 read 方法完成读操作. 参数表示 "读取几个字符" :

f = open('d:/test.txt', 'r')  # 以读的方式打开文件
result = f.read(2)  # 读取两个字符
print(result)
f.close()   # 关闭文件

三、结束语

今天内容就到这里啦,时间过得很快,大家沉下心来好好学习,会有一定的收获的,大家多多坚持,嘻嘻,成功路上注定孤独,因为坚持的人不多。那请大家举起自己的小手给博主一键三连,有你们的支持是我最大的动力💞💞💞,回见。


http://www.kler.cn/a/570270.html

相关文章:

  • Qt开发:如何使用QThread
  • springboot相关随记-2025
  • 批量设置 Word 样式,如字体信息、段落距离、行距、页边距等信息
  • 详解LSM树
  • DeepSeek与数据分析:现状、挑战与未来展望
  • LeetCode 11 - 盛最多水的容器
  • YOLOv12:目标检测新时代的破局者
  • C语言输入函数终极指南:深入解析scanf、fgets、getchar和sscanf
  • 《白帽子讲 Web 安全》之深入同源策略(万字详解)
  • UNION 和 UNION ALL 的区别:深入解析 SQL 中的合并操作
  • nlp第八节——序列标注任务
  • Spring Security + OAuth2.0
  • C++运算符重载的学习笔记
  • 【计算机网络】HTTP1.0/1.1/2.0对比,常用请求方式总结,HTTPS加密过程,浏览器访问域名详细过程
  • 记一次复杂分页查询的优化历程:从临时表到普通表的架构演进
  • Linux远程连接vscode
  • OpenCV(12):图像拼接、简单滤镜效果
  • 磁盘空间不足|如何安全清理以释放磁盘空间(开源+节流)
  • Pytorch实现之SRGAN+CBAM的结构设计
  • 【Transformer优化】什么是稀疏注意力?