Python 类型转换

在 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() 的参数是一个字典,那么只会将字典的所有键作为元素组合成一个集合。

上一篇: Python 运算符

下一篇: Python 注释

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号