数据类型转换
什么是数据类型转换?就是将数据由当前类型变化为其他类型的操作。数据类型转换分为两类,分别是自动数据类型转换和强制数据类型转换。
自动转换(又称为隐式转换)
自动转换时程序根据运算要求进行的转换,不需要人工干预。
1.自动类型转换不需要人工干预;
2.自动类型转换大多发生在运算或者判断过程中;
3.转换时向着更加精确的类型转换。
看代码:
newstring = 1.5
newnum = 1
print('newnum的类型是:',type(newnum),' newstring的类型是:',type(newstring))
newvalue = newstring + newnum #会向更精确的类型转换,所以这里应该是转换为浮点型
print('newstring + newnum = ',newvalue,'相加后的数据类型是:',type(newvalue))
list转str
假设有一个名为test_list的list,转换后的str名为test_str
则转换方法:
test_str = “”.join(test_list)
例子:
tese = [1,2,3]
test1 = "".join([str(x) for x in tese])
print(test1)
#结果:123
需要注意的是该方法需要list中的元素为字符型,若是整型,则需要先转换为字符型后再转为str类型。
str转list
str = "12345678990"
a =list(str)
print(a)
#['1', '2', '3', '4', '5', '6', '7', '8', '9', '9', '0']
假设有一个名为test_str的str,转换后的list名为test_list
则转换方法:
test_list=list(test_str)
例子:
强制转换(又称为显式转换)
根据程序需要,由编写程序人员人为改变数据类型的方式,叫做强制数据类型转换。
int() 将其他类型转换为整形:
1.浮点类型转换之后,舍去小数部分;
2.布尔值转换之后 True -> 1 False->0;
3.字符串转换,仅纯整型字符串可以转换(浮点型或者带有其他字符都不可以转换)
float() 将其他类型转换为浮点型:
1.整型转换之后变为浮点型,后面+.0;
2.布尔值转换 True->1.0 False ->0.0;
3.字符串,只有纯整型字符串和纯浮点型字符串可以转换,其他都不可以。
complex() 将其他类型转换为复数类型:
1.整型转换之后变为 (整型+0j);
2.浮点型转换之后变为(浮点型 + 0j);
3.布尔值转化之后 True->(1+0j) False(0j);
4.字符串,纯整型和浮点型字符串可以转化,其他都不可以。
bool() 将其他类型转换为布尔类型:
转换为布尔值False:
1.整型 0
2.浮点型 0.0
3.复数 0+0j
4.布尔 False
5.字符串 ‘’ 空字符串
6.列表 [] 空列表
7.元组 ()空元组
8.字典 {} 空字典
9.集合 set() 空集合
除了以上这些,其他转换为布尔值都会得到True.
str() 将其他类型转换为字符串类型,
所有转换均改变类型为字符串,表示方式依旧不变。
list() 将其他类型转换为列表类型。
dict() 将其他类型转换为字典类型
其他类型转化为字典时需要按照指定的格式才可以转化:(列表和元组的组合可以)
#var = [['cat', '黑猫警长'], ['mouse', '一只耳'], ['next', '请看夏季']]
var = [('cat', '黑猫警长'), ('mouse', '一只耳'), ('next', '请看夏季')]
#转换后为 {'cat': '黑猫警长', 'mouse': '一只耳', 'next': '请看夏季'}
作者:Eamon