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

Python 数据类型转换

目录

整数(int)与浮点数(float)之间的转换

(1)int():将浮点数或字符串转换为整数

(2)float():将整数或字符串转换为浮点数

字符串(str)与其他类型的转换

(1)str():将其他类型转换为字符串

(2)字符串转其他类型

列表(list)、元组(tuple)和集合(set)之间的转换

(1)list():将其他类型转换为列表

(2)tuple():将其他类型转换为元组

(3)set():将其他类型转换为集合

字典(dict)的转换

(1)从其他类型创建字典

(2)字典转其他类型

特殊类型转换

(1)布尔类型(bool)

(2)复杂类型转换


整数(int)与浮点数(float)之间的转换

(1)int():将浮点数或字符串转换为整数

浮点数转整数:会丢弃小数部分,只保留整数部分。

num = 3.14
int_num = int(num)  # 结果为 3

字符串转整数:字符串必须表示一个有效的整数。

str_num = "123"
int_num = int(str_num)  # 结果为 123

注意:如果字符串不是有效的整数格式,会抛出 ValueError

invalid_str = "123.45"
int_num = int(invalid_str)  # 抛出 ValueError
(2)float():将整数或字符串转换为浮点数

整数转浮点数

num = 10
float_num = float(num)  # 结果为 10.0

字符串转浮点数:字符串必须表示一个有效的浮点数。

str_num = "3.14"
float_num = float(str_num)  # 结果为 3.14

注意:如果字符串不是有效的浮点数格式,会抛出 ValueError

invalid_str = "abc"
float_num = float(invalid_str)  # 抛出 ValueError

字符串(str)与其他类型的转换

(1)str():将其他类型转换为字符串

整数或浮点数转字符串

num = 10
str_num = str(num)  # 结果为 "10"

float_num = 3.14
str_float = str(float_num)  # 结果为 "3.14"

列表、元组、字典等转字符串

my_list = [1, 2, 3]
str_list = str(my_list)  # 结果为 "[1, 2, 3]"
(2)字符串转其他类型

字符串转整数或浮点数已在前面提到。

字符串转列表或元组:

使用 list()tuple() 函数,会将字符串的每个字符作为独立元素。

s = "hello"
list_s = list(s)  # 结果为 ['h', 'e', 'l', 'l', 'o']
tuple_s = tuple(s)  # 结果为 ('h', 'e', 'l', 'l', 'o')

列表(list)、元组(tuple)和集合(set)之间的转换

(1)list():将其他类型转换为列表

元组转列表

my_tuple = (1, 2, 3)
my_list = list(my_tuple)  # 结果为 [1, 2, 3]

集合转列表

my_set = {1, 2, 3}
my_list = list(my_set)  # 结果为 [1, 2, 3],顺序可能不同
(2)tuple():将其他类型转换为元组

列表转元组

my_list = [1, 2, 3]
my_tuple = tuple(my_list)  # 结果为 (1, 2, 3)

集合转元组

my_set = {1, 2, 3}
my_tuple = tuple(my_set)  # 结果为 (1, 2, 3),顺序可能不同
(3)set():将其他类型转换为集合

列表或元组转集合:会自动去重。

my_list = [1, 2, 2, 3]
my_set = set(my_list)  # 结果为 {1, 2, 3}

字典(dict)的转换

(1)从其他类型创建字典

从键值对列表创建字典

pairs = [("name", "Kimi"), ("age", 25)]
my_dict = dict(pairs)  # 结果为 {"name": "Kimi", "age": 25}

从两个列表创建字典

keys = ["name", "age"]
values = ["Kimi", 25]
my_dict = dict(zip(keys, values))  # 结果为 {"name": "Kimi", "age": 25}
(2)字典转其他类型

字典的键或值可以分别提取为列表:

my_dict = {"name": "Kimi", "age": 25}
keys = list(my_dict.keys())  # 结果为 ["name", "age"]
values = list(my_dict.values())  # 结果为 ["Kimi", 25]

特殊类型转换

(1)布尔类型(bool

将其他类型转换为布尔值

非零数字、非空字符串、非空列表等为 True

零、空字符串、空列表等为 False

print(bool(0))  # False
print(bool(10))  # True
print(bool(""))  # False
print(bool("hello"))  # True
print(bool([]))  # False
print(bool([1, 2, 3]))  # True
(2)复杂类型转换

JSON字符串与字典的转换

使用 json 模块:

import json

# JSON字符串转字典
json_str = '{"name": "Kimi", "age": 25}'
my_dict = json.loads(json_str)  # 结果为 {"name": "Kimi", "age": 25}

# 字典转JSON字符串
my_dict = {"name": "Kimi", "age": 25}
json_str = json.dumps(my_dict)  # 结果为 '{"name": "Kimi", "age": 25}'

相关文章:

  • vllm部署LLM(qwen2.5,llama,deepseek)
  • DeepSeek 助力 Vue 开发:打造丝滑的单选按钮(Radio Button)
  • Hutool - Script:脚本执行封装,以 JavaScript 为例
  • 高性能GPU计算:释放计算潜力的加速利器
  • rkipc取jpeg图片分析
  • C++经典框架案例(三)
  • 2025雅森北京展今天开幕,全景展现新能源汽车时代
  • 算法分享——弗洛伊德算法暴力破解多源最短路问题
  • Java-01-源码篇-04集合-05-ConcurrentHashMap(1)
  • 关于实际工作中如何定位、复现、解决bug的个人心得
  • DeepSeek 部署全指南:常见问题解析与最新技术实践
  • 【Linux网络编程】数据链路层和网络层的几个问题:MTU,校验和,全球网段,路由表
  • C1车证学习笔记
  • Ryu:轻量开源,开启 SDN 新程
  • Ubuntu及其衍生系统安装Python
  • 自制操作系统前置知识汇编学习
  • C++核心指导原则: 资源管理
  • centos7中Open-Webui的部署
  • dataframe如何在末尾添加多行
  • MySQL 中的锁:为数据安全加把锁
  • 夜读丨庭院春韵
  • 葛兰西的三位一体:重提并复兴欧洲共产主义的平民圣人
  • 阿联酋启动第三届全球航空奖评选,奖金总额达百万美元
  • 上海嘉定远香文化环启用,运动、看展、听歌“一站式解决”
  • 政治局会议:持续稳定和活跃资本市场
  • 阿联酋首个AI博士项目设立,助力人才培养与科技转型