我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python数据类型转换详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python数据类型转换详解

1. Python的数据类型

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

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

  • 字符串类型 String
  • 数字类型 Number:

整形 int

浮点型 float

复数 complex

  • 布尔类型 Bool列
  • 表类型 List
  • 元组类型 Tuple
  • 字典类型 Dictionary
  • 集合类型 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'

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python数据类型转换详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

详解Python中数据类型的转换

这篇文章主要为大家详细介绍了Python中数据类型转换的相关资料,文中的示例代码讲解详细,具有一定的参考价值,感兴趣的小伙伴可以了解一下
2023-03-15

JavaScript数据类型的转换详解

JavaScript是一种动态类型语言,变量没有类型限制,可以随时赋予任意值。本文就来和大家聊聊JavaScript中的数据类型转换,感兴趣的小伙伴可以了解一下
2022-12-22

Python 数据类型转换

平时我们在处理数据的时候,有些数据类型不是我们想要的,怎么办?一、数据类型转换:要转换的类型(数据)·        要把num01转换为整数:int(num01)·        要把num01转换为浮点数:float(num01)·  
2023-01-31

python数据类型转换 python字

原文地址为:python数据类型转换 python字符串转浮点数 python字符串转float 转载 http://www.cnblogs.com/dabiao/archive/2010/03/07/1680096.html一、int函数
2023-01-31

Python中的数据类型转换

基本类型转换python3与python2通用函数:int('123456',10) # 转换为指定进制的整数hex(123456) # 整数转换为16进制串,转换后类型为字符串bin(123) # 整数转换为2进制串oct(123) #
2023-01-31

PHP 类型转换详解,让你轻松驾驭数据转换

php 中的类型转换包括自动类型转换和显式类型转换。显式类型转换可以使用内置函数进行:(int) 转换整型、(float) 转换浮点型、(string) 转换字符串、(bool) 转换布尔型、(array) 转换数组。通过灵活的类型转换,开
PHP 类型转换详解,让你轻松驾驭数据转换
2024-04-09

Python转换数据类型函数和转换数据类型的作用是什么

这篇文章给大家分享的是有关Python转换数据类型函数和转换数据类型的作用是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、转换数据类型的作用(必要性)先用一个问题来讲解一下为什么要学习转换数据类型?问题:
2023-06-29

Spring中自定义数据类型转换详解

在Spring容器中,可以使用这个系统作为PropertyEditor实现的替代,将外部化的bean属性值字符串转换为所需的属性类型。还可以在应用程序中需要类型转换的任何地方使用公共API。

Python编码类型转换方法详解

本文实例讲述了Python编码类型转换方法。分享给大家供大家参考,具体如下: 1:Python和unicode 为了正确处理多语言文本,Python在2.0版后引入了Unicode字符串。 2:python中的print 虽然python内
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录