当前位置: 首页 > news >正文

Python-数据类型转换

当涉及数据类型转换时,Python提供了多种内置函数来执行不同类型之间的转换
以下是每个方法的详细说明和示例案例

  1. 整数和浮点数转换:
  • int(x, base=10): 将给定的参数x转换为整数。x可以是一个整数、浮点数或字符串。如果x是字符串,则可以提供base参数指定字符串的进制,默认为十进制
# 示例案例 - int()
num_int = int(42.8)  # 输出:42,将浮点数转换为整数,小数部分被截断
num_int_base = int('1010', 2)  # 输出:10,将二进制字符串转换为整数
  • float(x): 将给定的参数x转换为浮点数。x可以是一个整数、浮点数或字符串
# 示例案例 - float()
num_float = float(42)  # 输出:42.0,将整数转换为浮点数
num_float_str = float('3.14')  # 输出:3.14,将字符串转换为浮点数
  1. 字符串和整数/浮点数转换:
  • int(s, base=10): 将字符串s转换为整数。base参数用于指定字符串的进制(默认为十进制)
# 示例案例 - int()
str_num = "123"
num_int = int(str_num)  # 输出:123,将字符串转换为整数str_hex = "1A"
num_hex = int(str_hex, 16)  # 输出:26,将十六进制字符串转换为整数
  • float(s): 将字符串s转换为浮点数。
# 示例案例 - float()
str_float = "3.14"
num_float = float(str_float)  # 输出:3.14,将字符串转换为浮点数
  1. 列表、元组和集合转换:
  • list(iterable): 将可迭代对象iterable(如列表、元组等)转换为列表
# 示例案例 - list()
tuple_data = (1, 2, 3)
list_data = list(tuple_data)  # 输出:[1, 2, 3],将元组转换为列表set_data = {4, 5, 6}
list_data_from_set = list(set_data)  # 输出:[4, 5, 6],将集合转换为列表
  • tuple(iterable): 将可迭代对象iterable转换为元组
# 示例案例 - tuple()
list_data = [1, 2, 3]
tuple_data = tuple(list_data)  # 输出:(1, 2, 3),将列表转换为元组
  • set(iterable): 将可迭代对象iterable转换为集合,去除重复项
# 示例案例 - set()
list_data = [1, 2, 2, 3, 3, 3]
set_data = set(list_data)  # 输出:{1, 2, 3},将列表转换为集合并去除重复项
  1. 字符串和字节转换:
  • str.encode(encoding='utf-8', errors='strict'): 将字符串转换为字节对象,使用指定的字符编码(默认为UTF-8)
# 示例案例 - str.encode()
str_data = "Hello, World!"
bytes_data = str_data.encode('utf-8')  # 输出:b'Hello, World!',将字符串转换为字节对象
  • bytes.decode(encoding='utf-8', errors='strict'): 将字节对象转换为字符串,使用指定的字符编码(默认为UTF-8)
# 示例案例 - bytes.decode()
bytes_data = b'Hello, World!'
str_data = bytes_data.decode('utf-8')  # 输出:"Hello, World!",将字节对象转换为字符串
  1. 布尔值转换:
  • bool(x): 将给定的参数x转换为布尔值。任何非零整数、非空容器(如非空字符串、非空列表等)都将转换为True,而零整数、空容器(如空字符串、空列表等)将转换为False
# 示例案例 - bool()
num = 42
bool_value = bool(num)  # 输出:True,将非零整数转换为布尔值empty_list = []
bool_value = bool(empty_list)  # 输出:False,将空列表转换为布尔值
  1. 其他数据类型转换:
  • eval(expression, globals=None, locals=None): 将字符串expression作为Python表达式进行求值,并返回结果。这个方法可能会带来潜在的安全风险,因为它可以执行任意的Python代码。谨慎使用,尤其是当字符串来自不受信任的来源时
# 示例案例 - eval()
str_list = "[1, 2, 3]"
list_data = eval(str_list)  # 输出:[1, 2, 3],将字符串作为Python表达式求值并转换为列表
  • ast.literal_eval(node_or_string): 将字符串node_or_string安全地解析为Python字面值表达式,返回对应的Python对象。这个方法用于安全地将字符串转换为Python对象,避免了eval()方法的潜在安全问题
import ast# 示例案例 - ast.literal_eval()
str_dict = "{'name': 'John', 'age': 30}"
dict_data = ast.literal_eval(str_dict)  # 输出:{'name': 'John', 'age': 30},安全地将字符串转换为字典

以上是常见的Python数据类型转换方法。在进行数据处理和用户输入处理时,务必选择合适的转换方式,以避免潜在的错误

http://www.lryc.cn/news/110255.html

相关文章:

  • DASCTF 2023 0X401七月暑期挑战赛 Web方向 EzFlask ez_cms MyPicDisk 详细题解wp
  • 数据结构-链表
  • 大数据Flink(五十五):Flink架构体系
  • 使用矢量数据库打造全新的搜索引擎
  • 算法提高-树状数组
  • Django ORM详解:最全面的数据库处理指南
  • Istio 安全 授权管理AuthorizationPolicy
  • 04 Ubuntu中的中文输入法的安装
  • faac内存开销较大,为方便嵌入式设备使用进行优化(valgrind使用)
  • 分数线划定(c++题解)
  • React 在 html 中 CDN 引入(包含 antd、axios ....)
  • 数据结构----异或
  • PHP Smarty模板的语法规则是怎样的?
  • Socks IP轮换:为什么是数据挖掘和Web爬取的最佳选择?
  • 优化|当机器学习上运筹学:PyEPO与端对端预测后优化
  • Cocos Creator的 Cannot read property ‘applyForce‘ of undefined报错
  • 纯css实现九宫格图片
  • 【MySQL】数据库的增删查改+备份与恢复
  • Docker 部署 redis 举例
  • 通过HandlerMethodArgumentResolver实现统一添加接口入参参数
  • JAVA-spring boot 2.4.X报错Unable to find GatewayFilterFactory with name Hystrix
  • 运输层---UDP协议
  • 【LeetCode】剑指 Offer Ⅱ 第3章:字符串(7道题) -- Java Version
  • 【python】绘图代码模板
  • RTT学习笔记12-KConfig 语法学习
  • 基于Mediapipe的姿势识别并同步到Unity人体模型中
  • Linux下进程的特点与环境变量
  • 以Llama-2为例,在生成模型中使用自定义LogitsProcessor
  • python 计算图片hash 缓存图片为key
  • 制造型企业如何实现车间设备生产数据的实时采集?需要5G网络吗?