Python 官方文档:入门教程 => 点击学习
这篇文章主要介绍“python数据类型转换方式有哪些”,在日常操作中,相信很多人在Python数据类型转换方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python数据类型转换方式有哪些”的疑惑有所
这篇文章主要介绍“python数据类型转换方式有哪些”,在日常操作中,相信很多人在Python数据类型转换方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python数据类型转换方式有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
上一遍博文已经详细地介绍了Python的数据类型,详见链接Python的变量命名及数据类型。
在这里总结一下Python的数据类型:
字符串类型 String
数字类型 Number:
整形 int
浮点型 float
复数 complex
可变数据类型:列表,字典,集合
不可变数据类型:字符串,数字类型,布尔类型,元组
容器类型数据:字符串,列表,元组,字典,集合
非容器类型数据:数字类型,布尔类型
由于不同的数据类型之间是不能进行运算的,所以我们需要数据类型转换。Python中的数据类型转换有两种,一种是自动类型转换,即Python在计算中会自动地将不同类型的数据转换为同类型数据来进行计算;另一种是强制类型转换,即需要我们基于不同的开发需求,强制地将一个数据类型转换为另一个数据类型。
当两个不同类型的数据进行运算时,结果会像更高精度进行计算,精度等级:布尔 < 整型 < 浮点型 < 复数。
a = 10b = Trueprint(a + b) # 11'''在和数字运算时,True转为1,False转为0'''a = 10b = 3.14print(a + b) # 13.14'''整型与浮点型运算时,整型转化为浮点型,结果也为浮点型'''
str( ):可以把其他类型数据转化为字符串类型
int( ):可以把其他类型数据转化为整型
float( ):可以把其他类型数据转化为浮点型
bool( ):可以把其他类型数据转化为布尔类型
list( ):可以把其他类型数据转化为列表类型
tuple( ):可以把其他类型数据转化为元组类型
dict( ):可以把其他类型数据转化为字典类型
set( ):可以把其他类型数据转化为集合类型
所有类型都可以转化为字符串类型。
a = 123 # intres = str(a) print(res, type(res)) # 123 <class 'str'>a = True # boolres = str(a)print(res, type(res)) # True <class 'str'>a = [1, 2, 3] # listres = str(a)print(res, type(res)) # [1, 2, 3] <class 'str'>a = (1, 2, 3) # tupleres = str(a)print(res, type(res)) # (1, 2, 3) <class 'str'>a = {1, 2, 3} # setres = str(a) # {1, 2, 3}print(res, type(res)) # {1, 2, 3} <class 'str'>a = {1: 'a', 2: 'b'} # dictres = str(a)print(res, type(res)) # {1: 'a', 2: 'b'} <class 'str'>
数字类型之间可以相互转换,但容器类型中只有字符串可以转换为数字类型,并且字符串中的元素必须为纯数字,否则无法转换。
'''1. 数字类型之间相互转换'''a = 123 # intres = float(a)print(res, type(res)) # 123.0 <class 'float'>a = True # boolres = float(a)print(res, type(res)) # 1.0 <class 'float'>'''2. 字符串类型转数字类型'''a = '123' # strres = int(a)print(res, type(res)) # 123 <class 'int'>a = '123abc' # strres = int(a)print(res, type(res)) # 此时python会报错,报错类型为TypeErrora = [1, 2, 3] # listres = 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 # intres = bool(a)print(res, type(res)) # False <class 'bool'>a = 0.0 # floatres = bool(a)print(res, type(res)) # False <class 'bool'>a = 0.345 # floatres = bool(a)print(res, type(res)) # True <class 'bool'>
数字类型是非容器类型,不能转换为列表
字符串转列表时,会把字符串中的每一个字符当作列表的元素
元组转列表时,会把字符串中的每一个字符当作列表的元素
字典转列表时,只保留字典中的键
集合转列表时,结果是无序的,因为集合本身就是无序的
a = '123' # strres = list(a)print(res, type(res)) # ['1', '2', '3'] <class 'list'>a = (1, 2, 3) # tupleres = list(a)print(res, type(res)) # ['1', '2', '3'] <class 'list'>a = {'name': 'Alice', 'Age': 5, 'Sex': 'Female'} # dictres = list(a)print(res, type(res)) # ['name', 'Age, 'Sex'] <class 'list'>a = {'a', 'b', 1, 2, 'c'} # setres = print(a)print(res, type(res)) # ['b', 2, 1, 'a', 'c'] <class 'list>
其他类型数据转元组类型与其他类型数据转列表类型的规则相同。
a = 'abc' # strres = tuple(a)print(res, type(res)) # ('a', 'b', 'c') <class 'tuple>a = [1, 2, 3] # listres = tuple(a)print(res, type(res)) # (1, 2, 3) <class 'tuple>a = {'name': 'Alice', 'Age': 5, 'Sex': 'Female'} # dictres = tuple(a)print(res, type(res)) # ('name', 'Age, 'Sex') <class 'tuple>a = {'a', 'b', 1, 2, 'c'} # setres = tuple(a)print(res, type(res)) # ('b', 2, 1, 'a', 'c') <class 'tuple>
数字类型是非容器类型,不能转换为集合
字符串转集合时,结果是无序的
列表转集合时,结果是无序的
元组转集合时,结果是无序的
字典转集合时,只保字典中的键,结果是无序的
a = '123' # strres = set(a)print(res, type(res)) # {'3', '2', '1'} <class 'set'>a = ['a', 'b', 2, 1] # listres = set(a)print(res, type(res)) # {2, 1, 'b', 'a'} <class 'set'>a = ('a', 'b', 2, 1) # tupleres = set(a)print(res, type(res)) # {2, 1, 'b', 'a'} <class 'set'>a = {'name': 'Alice', 'Age': 5, 'Sex': 'Female'} # dictres = set(a)print(res, type(res)) # {'Age', 'name', 'Sex'} <class 'tuple>
数字类型是非容器类型,不能转换为字典
字符串不能转字典类型,因为字符串不能生成二级容器
列表类型转字典类型,列表必须为等长二级容器,子容器中的元素个数必须为2
元组类型转字典类型,列表必须为等长二级容器,子容器中的元素个数必须为2集
合不能转字典类型,因为集合不支持哈希
a = '123' # strres = dict(a)print(res, type(res)) # 此时python会报错:ValueError: dictionary update sequence element #0 has length 1; 2 is requireda = [[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数据类型转换方式有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!
--结束END--
本文标题: Python数据类型转换方式有哪些
本文链接: https://lsjlt.com/news/304367.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0