python各类型转换总结

6 阅读2分钟

当处理不同类型的数据转换时,Python提供了多种函数和方法来实现这些转换。以下是一些常见的类型转换和相应的Python函数:

  1. 字符串到整数或浮点数

    • int(): 将字符串或其他数值类型转换为整数。
    • float(): 将字符串或其他数值类型转换为浮点数。
    num_str = "123"
    num_int = int(num_str)
    num_float = float(num_str)
    
  2. 字符串到字典或列表

    • eval(): 评估包含有效Python表达式的字符串,并返回相应的Python对象。注意:eval() 可能会存在安全风险,不推荐用于处理不受信任的输入。
    • ast.literal_eval(): 评估包含Python字面值表达式的字符串,并返回相应的Python对象,更安全可靠。
    import ast
    
    dict_str = "{'key': 'value'}"
    dict_obj = eval(dict_str)  # 潜在安全风险
    dict_obj_safe = ast.literal_eval(dict_str)  # 更安全的方法
    
  3. 其他类型转换

    • list(), tuple(): 将可迭代对象转换为列表或元组。
    • str(): 将对象转换为字符串形式。
    • bool(): 将值转换为布尔类型。
    list_obj = list(range(5))  # 转换为列表
    tuple_obj = tuple(range(5))  # 转换为元组
    str_obj = str(123)  # 转换为字符串
    bool_obj = bool(1)  # 转换为布尔值
    
  4. 高级类型转换

    • json.loads(): 将JSON字符串解析为Python对象(字典、列表等)。
    • json.dumps(): 将Python对象(字典、列表等)转换为JSON字符串。
    • pickle.loads(): 将二进制数据反序列化为Python对象。
    • pickle.dumps(): 将Python对象序列化为二进制数据。
    import json
    import pickle
    
    json_str = '{"key": "value"}'
    json_obj = json.loads(json_str)  # JSON字符串到Python对象
    json_str_out = json.dumps(json_obj)  # Python对象到JSON字符串
    
    data = {'key': 'value'}
    pickled_data = pickle.dumps(data)  # Python对象到二进制数据
    unpickled_data = pickle.loads(pickled_data)  # 二进制数据到Python对象
    

这些函数和方法可以帮助你在Python中进行各种类型之间的转换操作,根据需要选择合适的方式来处理数据类型转换。