如何在 Python 中进行数据类型转换?

一、Python 类型转换的核心方式

 
Python 提供了内置函数来实现标准类型转换,核心规则是:用目标类型作为函数名,传入要转换的数据即可。
 
转换函数 作用 示例 结果
int() 转整数 int("123") 123
float() 转浮点数 float(100) 100.0
str() 转字符串 str(3.14) "3.14"
bool() 转布尔值 bool(0) False
list() 转列表(有序、可变) list((1,2,3)) [1,2,3]
tuple() 转元组(有序、不可变) tuple([1,2,3]) (1,2,3)
set() 转集合(无序、去重) set([1,2,2,3]) {1,2,3}
dict() 转字典(键值对) dict([("a",1),("b",2)]) {"a":1,"b":2}
 

二、常用类型转换场景(附完整代码示例)

 

1. 数值型之间 / 字符串与数值的转换(最常用)

 
python
 
运行
# 1. 字符串转整数/浮点数(计算必备)
num_str = "123"
num_int = int(num_str)
print(num_int + 10)  # 输出:133(字符串无法直接运算,转成int才行)

price_str = "99.9"
price_float = float(price_str)
print(price_float * 2)  # 输出:199.8

# 2. 浮点数转整数(截断小数部分,不是四舍五入)
print(int(3.99))  # 输出:3
print(int(-2.5))  # 输出:-2

# 3. 整数/浮点数转字符串(拼接文本)
age = 18
print("我的年龄是:" + str(age))  # 输出:我的年龄是:18

# 4. 特殊:布尔值与数值的转换(True=1,False=0)
print(int(True))   # 输出:1
print(float(False))# 输出:0.0
 

2. 容器类型之间的转换(列表 / 元组 / 集合 / 字典)

 
python
 
运行
# 1. 列表 ↔ 元组(有序性保留,可变性切换)
my_list = [1, 2, 3]
my_tuple = tuple(my_list)  # 列表转元组(不可修改)
print(my_tuple)  # 输出:(1, 2, 3)

my_tuple2 = (4, 5, 6)
my_list2 = list(my_tuple2) # 元组转列表(可修改)
my_list2.append(7)
print(my_list2)  # 输出:[4, 5, 6, 7]

# 2. 列表/元组转集合(自动去重)
nums = [1, 2, 2, 3, 3, 3]
unique_nums = set(nums)
print(unique_nums)  # 输出:{1, 2, 3}

# 3. 列表转字典(需是嵌套的二元组/列表)
kv_list = [("name", "Tom"), ("age", 20)]
my_dict = dict(kv_list)
print(my_dict)  # 输出:{'name': 'Tom', 'age': 20}

# 4. 字典转其他容器(只取键/值)
print(list(my_dict.keys()))   # 取键转列表:['name', 'age']
print(tuple(my_dict.values()))# 取值转元组:('Tom', 20)
 

3. 布尔值转换(判断空 / 非空)

 
Python 规则:空值 / 0 为 False,非空 / 非 0 为 True
 
python
 
运行
# 数值转布尔
print(bool(0))     # 输出:False
print(bool(100))   # 输出:True
print(bool(3.14))  # 输出:True

# 字符串转布尔
print(bool(""))    # 空字符串:False
print(bool(" "))   # 空格字符串(非空):True
print(bool("abc")) # 输出:True

# 容器转布尔
print(bool([]))    # 空列表:False
print(bool({}))    # 空字典:False
print(bool({1}))   # 非空集合:True
 
 

三、类型转换的注意事项(避坑重点)

 
  1. 转换失败会报错:只有符合目标类型格式的数据才能转换,否则抛ValueError
     
    python
     
    运行
     
     
    # 错误示例:非数字字符串转整数
    # int("abc")  # 会报错:ValueError: invalid literal for int() with base 10: 'abc'
    
    # 正确做法:先判断或捕获异常
    s = "123a"
    if s.isdigit():
        print(int(s))
    else:
        print("不是有效数字")  # 输出:不是有效数字
  2. 集合转换会丢失顺序:集合是无序的,列表转集合后,元素顺序会打乱
     
    python
     
    运行
     
     
     
     
    order_list = [3, 1, 2]
    print(set(order_list))  # 输出可能是 {1,2,3}(顺序不固定)
     
     
  3. 字典的 key 必须是不可变类型:转字典时,键不能是列表 / 集合等可变类型
     
    python
     
    运行
     
     
     
     
    # 错误示例:
    # dict([([1], 2)])  # 报错:unhashable type: 'list'
    
    # 正确示例(键用元组):
    print(dict([((1,), 2)]))  # 输出:{(1,): 2}
     
     
 

总结

 
  1. Python 类型转换核心是用目标类型作为内置函数(如int()list()),传入待转换数据;
  2. 最常用的是字符串↔数值(计算)、列表↔集合(去重)、列表↔元组(可变性切换);
  3. 转换前要确保数据格式合法,避免ValueError,同时注意集合无序、字典键不可变等特性。
posted @ 2026-01-08 17:26  Python也不过如此  阅读(1)  评论(0)    收藏  举报