您现在的位置是:群英 > 开发技术 > Python语言
python中怎样进行数据类型转换,有什么方法?
Admin发表于 2021-12-03 17:37:071508 次浏览

    这篇文章给大家分享的是python数据类型转换的相关内容。下文python数据类型转换有很详细的介绍,示例代码有一定的参考学习价值,感兴趣的朋友接下来一起跟随小编看看吧。

    1. 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'
    

    总结

        关于python数据类型转换的内容就介绍到这,上述示例具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多大家可以关注其它的相关文章。

    文本转载自脚本之家

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

    相关信息推荐
    2022-06-16 09:27:26 
    摘要:方法:1、利用“phpinfo()”,获取Loaded Configuration File项的“php.ini”路径;2、根据路径修改“php.ini”文件内“html_errors”项的内容,将Off改为On;3、重新启动Apache。
    2022-07-11 17:49:21 
    摘要:只输出键值的两种方法:1、使用“$数组变量名[下标]”语句访问指定下标的一个键值,再利用echo或print语句输出该单个数组键值,语法“echo $数组变量名[下标];”或“print $数组变量名[下标];”。2、利用foreach语句循环遍历数组,再利用echo或print语句输出多个数组键值,语法“foreach($数组变量名 as $v){echo $v;}”。
    2022-01-04 18:53:14 
    摘要:Python判断某个数是否是整数的方法有很多,这里给大家分享两个比较简单的方法,分别是使用type()函数判断和isinstance()函数判断,那么具体怎样用呢?感兴趣的朋友就继续往下看吧。
    云活动
    推荐内容
    热门关键词
    热门信息
    群英网络助力开启安全的云计算之旅
    立即注册,领取新人大礼包
    • 联系我们
    • 24小时售后:4006784567
    • 24小时TEL :0668-2555666
    • 售前咨询TEL:400-678-4567

    • 官方微信

      官方微信
    Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
    增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
    免费拨打  400-678-4567
    免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
    微信公众号
    返回顶部
    返回顶部 返回顶部