Python3 数据类型转换完全指南
专为编程小白设计 • 大白话讲解 • 详细示例说明
在Python编程中,数据类型转换就像在不同语言之间进行翻译。想象你有一个数字123,但你需要把它变成文字”123″,这就是转换!
本指南将用最简单易懂的方式,详细解释Python中各种数据类型之间如何相互转换,并附上实际例子和注意事项。
🔢 数字类型转换
int() – 转换成整数
把其他类型的数据转换成整数(不带小数点的数字)
# 将字符串转换为整数
num_str = “123”
num_int = int(num_str) # 结果是 123
# 将浮点数转换为整数(直接去掉小数部分)
num_float = 12.9
num_int = int(num_float) # 结果是 12
# 布尔值转换
true_val = int(True) # 结果是 1
false_val = int(False) # 结果是 0
num_str = “123”
num_int = int(num_str) # 结果是 123
# 将浮点数转换为整数(直接去掉小数部分)
num_float = 12.9
num_int = int(num_float) # 结果是 12
# 布尔值转换
true_val = int(True) # 结果是 1
false_val = int(False) # 结果是 0
注意: 不能直接把包含字母的字符串转换成整数,比如 int(“hello”) 会报错!
float() – 转换成浮点数
把其他类型的数据转换成带小数点的数字
# 将字符串转换为浮点数
num_str = “12.34”
num_float = float(num_str) # 结果是 12.34
# 将整数转换为浮点数
num_int = 100
num_float = float(num_int) # 结果是 100.0
# 布尔值转换
true_val = float(True) # 结果是 1.0
false_val = float(False) # 结果是 0.0
num_str = “12.34”
num_float = float(num_str) # 结果是 12.34
# 将整数转换为浮点数
num_int = 100
num_float = float(num_int) # 结果是 100.0
# 布尔值转换
true_val = float(True) # 结果是 1.0
false_val = float(False) # 结果是 0.0
🔤 字符串转换
str() – 转换成字符串
把任何类型的数据转换成文本(字符串)
# 将数字转换为字符串
num_int = 123
num_str = str(num_int) # 结果是 “123”
# 将浮点数转换为字符串
num_float = 3.14
num_str = str(num_float) # 结果是 “3.14”
# 将布尔值转换为字符串
bool_val = True
bool_str = str(bool_val) # 结果是 “True”
# 将列表转换为字符串
my_list = [1, 2, 3]
list_str = str(my_list) # 结果是 “[1, 2, 3]”
num_int = 123
num_str = str(num_int) # 结果是 “123”
# 将浮点数转换为字符串
num_float = 3.14
num_str = str(num_float) # 结果是 “3.14”
# 将布尔值转换为字符串
bool_val = True
bool_str = str(bool_val) # 结果是 “True”
# 将列表转换为字符串
my_list = [1, 2, 3]
list_str = str(my_list) # 结果是 “[1, 2, 3]”
注意: str()转换不会改变数据本身的内容,只是换了一种表现形式
eval() – 字符串转代码
将字符串当作Python代码执行(谨慎使用!)
# 基本用法
expression = “3 * 5 + 2”
result = eval(expression) # 结果是 17
# 字符串转列表
list_str = “[1, 2, ‘apple’]”
my_list = eval(list_str) # 结果是 [1, 2, ‘apple’]
expression = “3 * 5 + 2”
result = eval(expression) # 结果是 17
# 字符串转列表
list_str = “[1, 2, ‘apple’]”
my_list = eval(list_str) # 结果是 [1, 2, ‘apple’]
安全警告: eval()会执行任何字符串代码,可能带来安全风险,不要用在用户输入的字符串上!
📋 列表、元组、集合转换
list() – 转换成列表
把其他可迭代类型转换成列表(可变的有序集合)
# 字符串转列表(每个字符变成列表元素)
text = “hello”
list_text = list(text) # 结果: [‘h’, ‘e’, ‘l’, ‘l’, ‘o’]
# 元组转列表
my_tuple = (1, 2, 3)
my_list = list(my_tuple) # 结果: [1, 2, 3]
# 集合转列表
my_set = {4, 5, 6}
my_list = list(my_set) # 结果: [4, 5, 6](顺序可能不同)
text = “hello”
list_text = list(text) # 结果: [‘h’, ‘e’, ‘l’, ‘l’, ‘o’]
# 元组转列表
my_tuple = (1, 2, 3)
my_list = list(my_tuple) # 结果: [1, 2, 3]
# 集合转列表
my_set = {4, 5, 6}
my_list = list(my_set) # 结果: [4, 5, 6](顺序可能不同)
tuple() – 转换成元组
把其他可迭代类型转换成元组(不可变的有序集合)
# 列表转元组
my_list = [1, 2, 3]
my_tuple = tuple(my_list) # 结果: (1, 2, 3)
# 字符串转元组
text = “abc”
tuple_text = tuple(text) # 结果: (‘a’, ‘b’, ‘c’)
# 字典转元组(只转换键)
my_dict = {‘a’: 1, ‘b’: 2}
dict_tuple = tuple(my_dict) # 结果: (‘a’, ‘b’)
my_list = [1, 2, 3]
my_tuple = tuple(my_list) # 结果: (1, 2, 3)
# 字符串转元组
text = “abc”
tuple_text = tuple(text) # 结果: (‘a’, ‘b’, ‘c’)
# 字典转元组(只转换键)
my_dict = {‘a’: 1, ‘b’: 2}
dict_tuple = tuple(my_dict) # 结果: (‘a’, ‘b’)
set() – 转换成集合
把其他可迭代类型转换成集合(无序且不重复)
# 列表转集合(自动去重)
my_list = [1, 2, 2, 3, 3, 3]
my_set = set(my_list) # 结果: {1, 2, 3}
# 字符串转集合
text = “hello”
set_text = set(text) # 结果: {‘h’, ‘e’, ‘l’, ‘o’}(只有一个’l’)
my_list = [1, 2, 2, 3, 3, 3]
my_set = set(my_list) # 结果: {1, 2, 3}
# 字符串转集合
text = “hello”
set_text = set(text) # 结果: {‘h’, ‘e’, ‘l’, ‘o’}(只有一个’l’)
📚 字典转换
dict() – 创建字典
从键值对序列创建字典(键值对集合)
# 从元组列表创建
tuple_list = [(‘a’, 1), (‘b’, 2), (‘c’, 3)]
my_dict = dict(tuple_list) # 结果: {‘a’: 1, ‘b’: 2, ‘c’: 3}
# 从键值对创建
my_dict = dict(a=1, b=2, c=3) # 结果同上
# 从两个列表创建(使用zip)
keys = [‘name’, ‘age’, ‘city’]
values = [‘Alice’, 30, ‘New York’]
my_dict = dict(zip(keys, values)) # 结果: {‘name’: ‘Alice’, ‘age’: 30, ‘city’: ‘New York’}
tuple_list = [(‘a’, 1), (‘b’, 2), (‘c’, 3)]
my_dict = dict(tuple_list) # 结果: {‘a’: 1, ‘b’: 2, ‘c’: 3}
# 从键值对创建
my_dict = dict(a=1, b=2, c=3) # 结果同上
# 从两个列表创建(使用zip)
keys = [‘name’, ‘age’, ‘city’]
values = [‘Alice’, 30, ‘New York’]
my_dict = dict(zip(keys, values)) # 结果: {‘name’: ‘Alice’, ‘age’: 30, ‘city’: ‘New York’}
注意: 字典的键必须是不可变类型(字符串、数字、元组等)
🔄 数据类型转换表
原始类型 | 目标类型 | 转换函数 | 注意事项 |
---|---|---|---|
整数(int) | 字符串(str) | str() | 直接转换 |
浮点数(float) | 字符串(str) | str() | 保留小数 |
字符串(str) | 整数(int) | int() | 必须只含数字 |
字符串(str) | 浮点数(float) | float() | 支持小数 |
列表(list) | 元组(tuple) | tuple() | 顺序不变 |
元组(tuple) | 列表(list) | list() | 顺序不变 |
列表/元组 | 集合(set) | set() | 自动去重 |
字典(dict) | 列表(list) | list(dict) | 只获取键 |
字典(dict) | 元组(tuple) | tuple(dict) | 只获取键 |
Python3 数据类型转换指南 | 编程小白必备 | 实际应用示例详解
记住:转换前思考数据类型是否兼容,避免程序出错!