IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python数据类型转换 -> 正文阅读

[Python知识库]Python数据类型转换

1. Python的数据类型

上一遍博文已经详细地介绍了Python的数据类型,详见链接Python的变量命名及数据类型

在这里总结一下Python的数据类型:

  1. 字符串类型 String
  2. 数字类型 Number:
    整形 int
    浮点型 float
    复数 complex
  3. 布尔类型 Bool
  4. 列表类型 List
  5. 元组类型 Tuple
  6. 字典类型 Dictionary
  7. 集合类型 Set

可变数据类型:列表,字典,集合
不可变数据类型:字符串,数字类型,布尔类型,元组

容器类型数据:字符串,列表,元组,字典,集合
非容器类型数据:数字类型,布尔类型

2. Python数据类型转换

由于不同的数据类型之间是不能进行运算的,所以我们需要数据类型转换。Python中的数据类型转换有两种,一种是自动类型转换,即Python在计算中会自动地将不同类型的数据转换为同类型数据来进行计算;另一种是强制类型转换,即需要我们基于不同的开发需求,强制地将一个数据类型转换为另一个数据类型。

2.1 自动类型转换

当两个不同类型的数据进行运算时,结果会像更高精度进行计算,精度等级:布尔 < 整型 < 浮点型 < 复数。

a = 10
b = True
print(a + b) # 11
'''
在和数字运算时,True转为1,False转为0
'''

a = 10
b = 3.14
print(a + b) # 13.14
'''
整型与浮点型运算时,整型转化为浮点型,结果也为浮点型
'''

2.2 强制类型转换

str( ):可以把其他类型数据转化为字符串类型
int( ):可以把其他类型数据转化为整型
float( ):可以把其他类型数据转化为浮点型
bool( ):可以把其他类型数据转化为布尔类型
list( ):可以把其他类型数据转化为列表类型
tuple( ):可以把其他类型数据转化为元组类型
dict( ):可以把其他类型数据转化为字典类型
set( ):可以把其他类型数据转化为集合类型

2.2.1 其他转字符串

所有类型都可以转化为字符串类型。

a = 123 # int
res = str(a) 
print(res, type(res)) # 123 <class 'str'>

a = True # bool
res = str(a)
print(res, type(res)) # True <class 'str'>

a = [1, 2, 3] # list
res = str(a)
print(res, type(res)) # [1, 2, 3] <class 'str'>

a = (1, 2, 3) # tuple
res = str(a)
print(res, type(res)) # (1, 2, 3) <class 'str'>

a = {1, 2, 3} # set
res = str(a) # {1, 2, 3}
print(res, type(res)) # {1, 2, 3} <class 'str'>

a = {1: 'a', 2: 'b'} # dict
res = str(a)
print(res, type(res)) # {1: 'a', 2: 'b'} <class 'str'>

2.2.2 其他转数字类型

数字类型之间可以相互转换,但容器类型中只有字符串可以转换为数字类型,并且字符串中的元素必须为纯数字,否则无法转换。

'''
1. 数字类型之间相互转换
'''
a = 123 # int
res = float(a)
print(res, type(res)) # 123.0 <class 'float'>

a = True # bool
res = float(a)
print(res, type(res)) # 1.0 <class 'float'>


'''
2. 字符串类型转数字类型
'''
a = '123' # str
res = int(a)
print(res, type(res)) # 123 <class 'int'>

a = '123abc' # str
res = int(a)
print(res, type(res)) # 此时python会报错,报错类型为TypeError

a = [1, 2, 3] # list
res = int(a)
print(res, type(res)) # 此时同样会报错,因为除了字符串以外的其他容器类型都不可以转换成数字类型

其他类型转数字类型中有一个特殊情况,就是其他类型转布尔类型。 bool( ) 可以把其他类型转为True或False。

'''
1. 容器类型转布尔类型:
   容器中为空 --> False
   容器中有元素 --> True
'''
a = '' # 空字符串
res = bool(a)
print(res, type(res)) # False <class 'bool'>

a = '0' # 字符串中有元素
res = bool(a)
print(res, type(res)) # True <class 'bool'>

a = [] # 空列表
res = bool(a)
print(res, type(res)) # False <class 'bool'>

a = [1, 2, 3] # 列表中有元素
res = bool(a)
print(res, type(res)) # True <class 'bool'>

a = tuple() # 空元组
res = bool(a)
print(res, type(res)) # False <class 'bool'>

a = dict() # 空字典
res = bool(a)
print(res, type(res)) # False <class 'bool'>

a = set() # 空集合
res = bool(a)
print(res, type(res)) # False <class 'bool'>


'''
2. 数字类型转布尔类型:
   int类型中,0为False,其他为真
   float类型中,0.0为False,其他为真
'''
a = 0 # int
res = bool(a)
print(res, type(res)) # False <class 'bool'>

a = 0.0 # float
res = bool(a)
print(res, type(res)) # False <class 'bool'>

a = 0.345 # float
res = bool(a)
print(res, type(res)) # True <class 'bool'>

2.2.3 其他转列表类型

  1. 数字类型是非容器类型,不能转换为列表
  2. 字符串转列表时,会把字符串中的每一个字符当作列表的元素
  3. 元组转列表时,会把字符串中的每一个字符当作列表的元素
  4. 字典转列表时,只保留字典中的键
  5. 集合转列表时,结果是无序的,因为集合本身就是无序的
a = '123' # str
res = list(a)
print(res, type(res)) # ['1', '2', '3'] <class 'list'>

a = (1, 2, 3) # tuple
res = list(a)
print(res, type(res)) # ['1', '2', '3'] <class 'list'>

a = {'name': 'Alice', 'Age': 5, 'Sex': 'Female'} # dict
res = list(a)
print(res, type(res)) # ['name', 'Age, 'Sex'] <class 'list'>

a = {'a', 'b', 1, 2, 'c'} # set
res = print(a)
print(res, type(res)) # ['b', 2, 1, 'a', 'c'] <class 'list>

2.2.4 其他转元组类型

其他类型数据转元组类型与其他类型数据转列表类型的规则相同。

a = 'abc' # str
res = tuple(a)
print(res, type(res)) # ('a', 'b', 'c') <class 'tuple>

a = [1, 2, 3] # list
res = tuple(a)
print(res, type(res)) # (1, 2, 3) <class 'tuple>

a = {'name': 'Alice', 'Age': 5, 'Sex': 'Female'} # dict
res = tuple(a)
print(res, type(res)) # ('name', 'Age, 'Sex') <class 'tuple>

a = {'a', 'b', 1, 2, 'c'} # set
res = tuple(a)
print(res, type(res)) # ('b', 2, 1, 'a', 'c') <class 'tuple>

2.2.5 其他转集合类型

  1. 数字类型是非容器类型,不能转换为集合
  2. 字符串转集合时,结果是无序的
  3. 列表转集合时,结果是无序的
  4. 元组转集合时,结果是无序的
  5. 字典转集合时,只保字典中的键,结果是无序的
a = '123' # str
res = set(a)
print(res, type(res)) # {'3', '2', '1'} <class 'set'>

a = ['a', 'b', 2, 1] # list
res = set(a)
print(res, type(res)) # {2, 1, 'b', 'a'} <class 'set'>

a = ('a', 'b', 2, 1) # tuple
res = set(a)
print(res, type(res)) # {2, 1, 'b', 'a'} <class 'set'>

a = {'name': 'Alice', 'Age': 5, 'Sex': 'Female'} # dict
res = set(a)
print(res, type(res)) # {'Age', 'name', 'Sex'} <class 'tuple>

2.2.6 其他转字典类型

  1. 数字类型是非容器类型,不能转换为字典
  2. 字符串不能转字典类型,因为字符串不能生成二级容器
  3. 列表类型转字典类型,列表必须为等长二级容器,子容器中的元素个数必须为2
  4. 元组类型转字典类型,列表必须为等长二级容器,子容器中的元素个数必须为2
  5. 集合不能转字典类型,因为集合不支持哈希
a = '123' # str
res = dict(a)
print(res, type(res)) # 此时python会报错:ValueError: dictionary update sequence element #0 has length 1; 2 is required

a = [[1, 2], ['a','b']] # 等长二级列表
res = dict(a)
print(res, type(res)) # {1: 2, 'a': 'b'} <class 'dict'>

a = ((1, 2), (3, 4), (5, 6)) # 等长二级元组
res = dict(a)
print(res, type(res)) # {1: 2, 3: 4, 5: 6} <class 'tuple'>

a = {{1, 2}, {3, 4}} # 等长二级集合
res = dict(a)
print(res,type(res)) # 此时python会报错:TypeError: unhashable type: 'set'

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 12:58:42  更:2021-10-29 12:59:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:53:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码