在 Python 中,类型转换指的是将一种数据类型转换为另一种数据类型。Python 中的类型转换是通过内置函数来实现的,常用的如下表所示。
| 函数 | 说明 |
|---|---|
| int() | 将其他类型转换为 “整型” |
| float() | 将其他类型转换为 “浮点型” |
| bool() | 将其他类型转换为 “布尔型” |
| str() | 将其他类型转换为 “字符串” |
| list() | 将其他类型转换为 “列表” |
| tuple() | 将其他类型转换为 “元组” |
| dict() | 将其他类型转换为 “字典” |
| set() | 将其他类型转换为 “集合” |
转换为整数类型
在 Python 中,我们可以使用 int() 函数来将 “数值” 或 “字符串” 转换为一个整数。
示例 1:int() 的参数是 “数字”
a = int(666)
print(a)
b = int(3.14)
print(b)运行结果如下。
666
3分析:
如果参数是一个整数,则会原样输出。如果参数是一个浮点数,去除小数部分(直接截断而非四舍五入)。
示例 2:int() 的参数是 “字符串”
a = int('666')
print(a)
b = int('3.14')
print(b)运行结果如下。
666
(报错)ValueError: invalid literal for int() with base 10: '3.14'分析:
int() 只能将 “整型字符串” 转换为整数,而对于非整型字符串,则会直接报错。
转换为浮点数类型
在 Python 中,我们可以使用 float() 函数来将 “数值” 或 “字符串” 转换为一个浮点数。
示例 3:float() 参数是 “数字”
# 整数
print(float(666))
# 浮点数
print(float(3.14))运行结果如下。
666.0
3.14分析:
如果 float() 参数是一个整数,则会在后面加上 “.0”。如果参数是一个浮点数,则会原样输出。
示例 4:float() 参数是 “字符串”
# 整数型字符串
print(float('666'))
# 浮点型字符串
print(float('3.14'))运行结果如下。
666.0
3.14分析:
一般情况下,只有 “整型字符串” 或 “浮点型字符串” 才可以作为 float() 函数的参数。如果使用了其他不符合条件的字符串,则会直接报错。比如执行 print(float('lvye123')),此时运行结果如下。
(报错)ValueError: could not convert string to float: 'lvye123'转换为布尔类型
在 Python 中,我们可以使用 bool() 函数来返回某个对象对应的布尔值。对于 bool() 函数的使用,小伙伴们需要清楚以下 2 点。
- 所有空值都会返回 False,包括 False、None、0、空列表、空元组、空字典、空集合等。
- 所有非空值都会返回 True。
示例 5:使用 bool()
print(bool(666))
print(bool(3.14))
print(bool('绿叶网'))
print(bool(0))
print(bool(None))运行结果如下。
True
True
True
False
False转换为字符串类型
在 Python 中,我们可以使用 str() 函数来将其他类型(如 int、float 等)转换为字符串类型。
示例 6:str() 将数字转换为字符串
s1 = str(666)
s2 = str(3.14)
print(type(s1))
print(type(s2))运行结果如下。
<class 'str'>
<class 'str'>示例 7:str() 将布尔值转换为字符串
result1 = str(True)
print(result1)
result2 = str(False)
print(result2)运行结果如下。
True
False示例 8:str() 将序列转换为字符串
colors = ['red', 'green', 'blue']
print(str(colors)) # "['red', 'green', 'blue']"
nums = [1, 2, 3]
print(str(nums)) # '[1, 2, 3]'运行结果如下。
['red', 'green', 'blue']
[1, 2, 3]转换为列表类型
在 Python 中,我们可以使用 list() 函数来将其他类型(如元组、字符串、字典等)转换为列表类型。
示例 9:list() 将 “元组或字符串” 转换为列表
# 元组
a = ('绿', '叶', '网')
print(list(a))
# 字符串
b = '绿叶网'
print(list(b))运行结果如下。
['绿', '叶', '网']
['绿', '叶', '网']示例 10:list 将 “字典和集合” 转换为列表
# 字典
a = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
print(list(a))
# 集合
b = {'红', '绿', '蓝'}
print(list(b))运行结果如下。
['Jack', 'Lucy', 'Tony']
['红', '绿', '蓝']分析:
需要注意的是,如果 list() 的参数是一个字典,那么只会将字典的所有键作为元素组合成一个列表。
转换为元组类型
在 Python 中,我们可以使用 tuple() 函数来将其他类型(如列表、字符串、字典等)转换为元组类型。
示例 11:tuple() 将 “列表或字符串” 转换为元组
# 列表
a = ['绿', '叶', '网']
print(tuple(a))
# 字符串
b = '绿叶网'
print(tuple(b))运行结果如下。
('绿', '叶', '网')
('绿', '叶', '网')示例 12:tuple() 将 “字典和集合” 转换为元组
# 字典
a = {'Jack': 1001, 'Lucy': 1002}
print(tuple(a))
# 集合
b = {'红', '绿', '蓝'}
print(tuple(b))运行结果如下。
('Jack', 'Lucy')
('红', '绿', '蓝')分析:
需要注意的是,如果 tuple() 的参数是一个字典,那么只会将字典的所有键作为元素组合成一个元组。
转换为字典类型
在 Python 中,我们可以使用 dict() 函数来将一个可迭代对象转换为字典。需要注意的是,该可迭代对象需要符合一定的条件才能转换。
示例 13:dict() 将 “其他可迭代对象” 转换为字典
items = [('a', 1), ('b', 2), ('c', 3)]
d = dict(items)
print(d)运行结果如下。
{'a': 1, 'b': 2, 'c': 3}分析:
如果传入一个可迭代对象,该对象每个元素都是长度为 2 的列表或元组,那么 dict() 函数会将每个列表或元组的第 1 个元素作为键,第 2 个元素作为值,然后去生成一个字典对象。
转换为集合类型
在 Python 中,我们可以使用 set() 函数来将其他类型(如元组、字符串、字典等)转换为集合类型。
示例 14:set() 将 “序列” 转换为集合
# 列表
a = ['绿', '叶', '网']
print(set(a))
# 元组
b = ('绿', '叶', '网')
print(set(b))
# 字符串
c = '绿叶网'
print(set(c))运行结果如下。
{'网', '叶', '绿'}
{'网', '叶', '绿'}
{'网', '叶', '绿'}示例 15:set() 将 “字典” 转换为集合
result = {'Jack': 1001, 'Lucy': 1002, 'Tony': 1003}
print(set(result))运行结果如下。
{'Tony', 'Lucy', 'Jack'}分析:
需要注意的是,如果 set() 的参数是一个字典,那么只会将字典的所有键作为元素组合成一个集合。
