python数据之间的转换和关系
首先数据类型在我看来分为两类:
容器类:能存储数据,例如:元祖、列表、集合、字符串。
原子类:单纯保存数值,例如:整数、浮点数、复数。
容器类与容器类之间,一般都可以进行两两之间的转化。
原子类与原子类之间,一般也可以进行两两之间的转化。
容器类与原子类之间由于存储数据的模式不一样,因此一般不能转
python中常用的数据类型:整数(int)、字符串(str)、布尔值(bool)、列表(list)、元祖(tuple)、字典(dict)
还有一些步长用的数据类型:浮点数(float)、复数(complex)、可变集合(set)。
序号 | 原数据类型 | 目标数据类型 | 转化函数 |
1 | 整数 | 字符串 | str() |
2 | 整数 | 浮点数 | float() |
3 | 整数 | 复数 | complex() |
4 | 整数 | 布尔值 | bool() 或chr() |
5 | 字符串 | 整数 | int() |
6 | 字符串 | 布尔值 | bool() |
7 | 字符串 | 列表 | list()或者split() |
8 | 字符串 | 元祖 | tuple() |
9 | 字符串 | 集合 | set()或frozenset() |
10 | 列表 | 字符串 | str()或join() |
11 | 列表 | 元祖 | tuple() |
12 | 列表 | 集合 | set() |
13 | 元祖 | 列表 | list() |
14 | 元祖 | 字符串 | str()或join() |
15 | 元祖 | 集合 | set() |
16 | 集合 | 列表 | list() |
17 | 集合 | 字符串 | str()或join() |
18 | 集合 | 元祖 | tuple() |
1.整数(int)
整数转化为字符串,部分还可以用chr()转换。
>>> str(11) '11'
数值大小在65-90和97-122的范围之内,可以使用chr()进行字符转换 >>> chr(65) 'A' >>> chr(120) 'x'
整数转化为浮点数
>>> float(12)
12.0
整数转化为复数
>>> complex(11)
(11+0j)
整数转化为布尔值:除0之外的都是True
>>> bool(0) False >>> bool(1) True
2.字符串(str)
字符串转化为整数,但是元素必须是数字,不然会报错。——int
>>> int('67') 67 >>> int('wo') Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: 'wo'
字符串转化为布尔值——bool
>>> bool('') False >>> bool('Hello,World') True
字符串转化为列表——list
>>> list('tyuigh') ['t', 'y', 'u', 'i', 'g', 'h']
字符串转化为元祖——tuple
>>> tuple('tyuigh') ('t', 'y', 'u', 'i', 'g', 'h')
字符串转化为集合——set
>>> set('tyuigh') {'h', 'y', 'g', 'i', 'u', 't'}
3.列表
列表转化为元祖——tuple
>>> tuple(['name','sex','age']) ('name', 'sex', 'age')
列表转化为字符串——str()或join()
>>> str(['name','sex','age']) "['name', 'sex', 'age']" >>> ''.join(['name','sex','age']) 'namesexage'
列表转化为集合——set()
>>> li1 = [1,2,'alex'] >>> set(li1) {1, 2, 'alex'}
4.元祖
元祖转化为列表——list()
>>> list(('name','kebi')) ['name', 'kebi']
元祖转化为字符串——str()或join()
>>> str(('name','sex','age')) "('name', 'sex', 'age')" >>> ''.join(('name','sex','age')) 'namesexage'
元祖转化为集合
>>> set(('name','sex','age')) {'age', 'sex', 'name'}
5.集合
集合转换成字符串
li9 = set(('name','sex','age'))
>>> str(li9) "{'age', 'sex', 'name'}" >>> ''.join(li9) 'agesexname'
集合转换成元祖
>>> tuple(li9) ('age', 'sex', 'name')
集合转换成列表
>>> list(li9) ['age', 'sex', 'name']