一日一技:Python的bytes型数据的迭代特征

简介: 一日一技:Python的bytes型数据的迭代特征

Bytes类型是Python 3引入的一个基本数据类型。调用Bytes类型的 .decode()方法可以把它变成Python 3的 str类型。调用 str类型.encode()方法,可以把它变成Bytes类型。

如果字符串只由Ascii中的符号组成,那么它转换为Bytes类型以后打印出来,“看上去”仅仅是前面多了一个 b而已,如下图所示:

但是如果字符串里面包含Ascii符号之外的其他符号,那么转换为Bytes类型以后,就变得不一样了,如下图所示:

其中在Ascii符号以外的字符,会被编码为很多的十六进制值。

并且,即使是仅有Ascii字符,Bytes型数据的迭代特性也与字符串不一样。

  1. 当我们使用for循环展开字符串时,得到的是每一个字符,如下图所示:

  • 当我们使用for循环展开Bytes对象时,得到的是很多的Ascii编码,如下图所示:

这些编码实际上可以直接使用 chr转换为对应的字符,如下图所示:

  • 使用下标取某一个字符时,字符串能直接获取对应的符号,但Bytes类型只能获取到Ascii编码,例如:

  • 使用切片时,字符串和Bytes类型又都能得到对应的字符,如下图所示:

  • 对于中文或者其他非Ascii字符的符号,无论是用索引还是切片,都看不到原来的字符:

在Python 3里面,不少操作获取的都是Bytes型的数据,例如base64.b64decode()的输出结果、例如redis-py这个库从Redis中读取的数据……

所以在实际使用中,一定要分清楚当前数据是不是Bytes型,以免因为它的迭代行为与字符串不一致导致问题。

最后,不要因为Bytes型数据在迭代的时候不方便就讨厌它。这个数据类型有非常重要的作用。

目录
相关文章
|
1天前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
【5月更文挑战第10天】BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
20 1
|
1天前
|
存储 JSON 数据格式
Python知识点——高维数据的格式化
Python知识点——高维数据的格式化
5 0
|
1天前
|
Python
Python知识点——文件和数据格式化
Python知识点——文件和数据格式化
5 0
|
1天前
|
存储 机器学习/深度学习 数据可视化
基于Python的数据分组技术:将数据按照1, 2, 3规则分为三个列表
基于Python的数据分组技术:将数据按照1, 2, 3规则分为三个列表
8 1
|
1天前
|
存储 JSON 数据库
Python中列表数据的保存与读取:以txt文件为例
Python中列表数据的保存与读取:以txt文件为例
14 2
|
1天前
|
BI 索引 Python
python字节(bytes)
【5月更文挑战第8天】python字节(bytes)
13 5
|
1天前
|
存储 JSON 数据挖掘
python序列化和结构化数据详解
python序列化和结构化数据详解
13 0
|
1天前
|
数据采集 数据可视化 数据挖掘
Python 与 PySpark数据分析实战指南:解锁数据洞见
Python 与 PySpark数据分析实战指南:解锁数据洞见
|
1天前
|
数据采集 数据处理 开发者
Python 中的数据处理技巧:高效数据操作的艺术
Python 在数据处理方面表现卓越,为开发者提供了丰富的工具和库以简化数据操作。在本文中,我们将探讨 Python 中数据处理的一些技巧,包括数据清洗、数据转换以及优化数据操作的最佳实践。通过掌握这些技巧,您可以在 Python 中更加高效地处理和分析数据。
|
1天前
|
机器学习/深度学习 自然语言处理 算法
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
http://www.vxiaotou.com