整理了最全的Python3数据类型转换方法,可以收藏当手册用(python3 编码转换)

网友投稿 1182 2022-09-19

整理了最全的Python3数据类型转换方法,可以收藏当手册用(python3 编码转换)

整理了最全的Python3数据类型转换方法,可以收藏当手册用(python3 编码转换)

本文基于python3.8版本,总结了各种数据类型直接的转换规则和方法。算是比较全了,可以收藏当手册来查。

概述

数据类型转换,指的是通过某种方法,将一个数据由原来的类型转换为另外一个类型。比如,我们将字符串“123”转换为数字123,这就是一种数据类型的转换。

Python支持各种标准数据类型之间的转换,但并不是任意数据都可以转换的,所有的转换要符合“常理”,逻辑上应该是成立的。比如,你不应该试图将一个complex类型转换为int,因为python也不知该怎么转换。

数据类型转换支持情况汇总表

下面我整理了python3数据类型之间转换的支持情况(这应该是最全的了):

各种类型之间的转换及实例

转换为int

1 print(int(1.2)) # float -> int

2 print(int('123')) # string -> int

3 print(int(b'456')) # bytes -> int

4 print('0x%x' % (int.from_bytes(b'456', byteorder='little', signed=True)))

5 print(int(True)) # bool -> int

转换为float

1 print(float('1.2')) # string->float

2 print(float(b'3.4')) # bytes -> float

3 print(float(123)) # int->float

4 print(float(False)) # bool->float

转换为bool

所有类型都可以转换为bool型

转换为complex

1 print(complex(100)) # int->complex

2 print(complex(1.2)) # float->complex

3 print(complex(True)) # bool->complex

4 print(complex('1.2+2.3j')) # string->complex

转换为string

所有基本类型都可以转换为string

转换为bytes

因为所有类型都可以转换为string,而string可以转换为bytes,所以所有类型都可以间接转换为bytes。

下面我们只讨论直接转换为bytes的类型

转换为list

1 print(list("hello")) # string->list

2 print(list(b'hello')) # bytes->list

3 print(list((100, 200, 300))) # tuple->list

4 print(list({'name', 'age'})) # set->list

5 print(list({'name': 'xiaowang', 'age': 20})) # dict->list, 只取key值7

转换为tuple

1 print(tuple("hello")) # string->tuple

2 print(tuple(b"hello")) # bytes->tuple

3 print(tuple([100, 200, 300])) # list->tuple

4 print(tuple({'name', 'age'})) # set->tuple

5 print(tuple({'name': 'xiaowang', 'age': 20})) # dict->tuple, 只取key值

转换为set

转换为dict

转换为dict的方法略微复杂一些

1、string->dict

方式一、使用json转换,字符串格式需要严格按照json格式来

1 user_str = '{"name": "xiaowang", "city": "Chengdu", "age": 28}'

2 import json

3 print(json.loads(user_str))

方式二、使用eval函数转换,eval有安全隐患,不建议使用

print(eval(user_str))

方式三、 使用ast.literal_eval

import ast

print(ast.literal_eval(user_str))

2、list->dict

方式一、需要用到zip

1 user_keys = ['name', 'city', 'age']

2 user_values = ['xiaowang', 'Chengdu', 28]

3 print(dict(zip(user_keys, user_values)))

方式二、二维列表

set->dict tuple->dict的方式和list->dict一样

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:bjam安装boost 1.59出现corecrt.h找不到的原因
下一篇:域环境中禁用(取消)密码复杂策略及客户机加入域控报错的解决办法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~