目录 数据类型转换,指的是通过某种方法,将一个数据由原来的类型转换为另外一个类型。比如,我们将字符串“123”转换为数字123,这就是一种数据类型的转换。 Python支持各种标准数据类型之间的转换,但并不是任意数据都可以转换的,所有的转换要符合“常理”,逻辑上应该是成立的。比如,你不应该试图将一个complex类型转换为int,因为python也不知该怎么转换。 下面我整理了python3数据类型之间转换的支持情况(这应该是最全的了): Int Float Bool Complex String Bytes List Tuple Set Dict Int – Y Y N Y Y N N N N Float Y – Y N Y Y N N N N Bool Y Y – Y Y Y Y Y Y Y Complex Y Y Y – Y N N N N N String Y Y Y Y – Y Y Y Y Y Bytes(只考虑直接转换) Y N Y N Y – Y Y Y N List N N N N Y Y – Y Y Y Tuple N N N N Y Y Y – Y Y Set N N N N Y Y Y Y – Y Dict N N N N Y N Y Y Y – 下面列举了各种类型之间的转换及实例: print(int(1.2)) # float -> int print(float(‘1.2’)) # string->float 所有类型都可以转换为bool型 print(bool(1)) # int->bool print(complex(100)) # int->complex 所有基本类型都可以转换为string print(b’hello’.decode(‘utf-8’)) # bytes->string 因为所有类型都可以转换为string,而string可以转换为bytes,所以所有类型都可以间接转换为bytes。 print(‘bytes’.center(30, ‘*’)) print(list(“hello”)) # string->list print(tuple(“hello”)) # string->tuple print(set(“hello”)) # string->set 转换为dict的方法略微复杂一些 1、string->dict 方式一、使用json转换,字符串格式需要严格按照json格式来 user_str = ‘{“name”: “xiaowang”, “city”: “Chengdu”, “age”: 28}’ 方式二、使用eval函数转换,eval有安全隐患,不建议使用 print(eval(user_str)) 方式三、 使用ast.literal_eval import ast 2、list->dict 方式一、需要用到zip user_keys = [‘name’, ‘city’, ‘age’] 方式二、二维列表 user_info = [ set->dict tuple->dict的方式和list->dict一样 更多python教程,请查看我的专栏《0基础学python视频教程》
概述
数据类型转换支持情况汇总表
转换实例
转换为int
print(int(‘123’)) # string -> int
print(int(b’456′)) # bytes -> int
print(‘0x%x’ % (int.from_bytes(b’456′, byteorder=’little’, signed=True)))
print(int(True)) # bool -> int
转换为float
print(float(b’3.4′)) # bytes -> float
print(float(123)) # int->float
print(float(False)) # bool->float
转换为bool
print(bool(0.0)) # float->bool
print(bool(0 + 0j)) # complex->bool
print(bool(”)) # string->bool, 空字符串为False,其它都是True
print(bool(b’hello’)) # bytes->bool, 空为False,其它都是True
print(bool.from_bytes(b’x00′, byteorder=’little’)) # bytes->bool
print(bool([])) # list->bool, 空为False,其它都是True
print(bool(())) # tuple->bool, 空为False,其它都是True
print(bool({})) # dict->bool, 空为False,其它都是True
print(bool(set())) # set->bool, 空为False,其它都是True
转换为complex
print(complex(1.2)) # float->complex
print(complex(True)) # bool->complex
print(complex(‘1.2+2.3j’)) # string->complex
转换为string
print(str(1)) # int->string
print(str(1.2)) # float->string
print(str(True)) # bool->string
print(str(1.2 + 2.3j)) # complex->string其它都是True
print(str([‘hello’, 100])) # list->string
print(str((‘hello’, 100))) # tuple->string
print(str({‘name’: ‘xiaowang’, ‘age’: 20})) # dict->string
print(str({‘name’, ‘age’})) # set->string
转换为bytes
下面我们只讨论直接转换为bytes的类型
print(b’x64′) # int转bytes
print(int.to_bytes(100, byteorder=’big’, signed=True, length=2)) # int转bytes
print(bool.to_bytes(True, byteorder=’big’, signed=True, length=2)) # bool转bytes
print(‘hello’.encode(encoding=’utf-8′)) # string转bytes
print(bytes([1, 200, 80, 50])) # list转bytes
print(bytes((1, 200, 80, 50))) # tuple转bytes
print(bytes({1, 200, 80, 50})) # set转bytes
转换为list
print(list(b’hello’)) # bytes->list
print(list((100, 200, 300))) # tuple->list
print(list({‘name’, ‘age’})) # set->list
print(list({‘name’: ‘xiaowang’, ‘age’: 20})) # dict->list, 只取key值
转换为tuple
print(tuple(b”hello”)) # bytes->tuple
print(tuple([100, 200, 300])) # list->tuple
print(tuple({‘name’, ‘age’})) # set->tuple
print(tuple({‘name’: ‘xiaowang’, ‘age’: 20})) # dict->tuple, 只取key值
转换为set
print(set(b”hello”)) # bytes->set
print(set([100, 200, 300])) # list->set
# print(set([100, 200, [300, 400]])) # list->set, list中包含可变数据类型,报异常
print(set((‘name’, ‘age’))) # tuple->set
# print(set((‘name’, ‘age’, []))) # tuple->set,包含可变数据类型,报异常
print(set({‘name’: ‘xiaowang’, ‘age’: 20})) # dict->set, 只取key值
转换为dict
import json
print(json.loads(user_str))
print(ast.literal_eval(user_str))
user_values = [‘xiaowang’, ‘Chengdu’, 28]
print(dict(zip(user_keys, user_values)))
[“name”, “xiaowang”],
[“city”, “Chengdu”],
[“age”, 28]
]
print(dict(user_info))
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算