【python全栈系列】day09-python数据类型转换

在Python中,数据类型转换是一项非常常见的操作,它允许我们将一种类型的数据转换为另一种类型。这种转换在处理来自不同源的数据时尤其有用,例如用户输入、文件读取或网络数据等。下面,我将通过代码示例来展示如何将其他数据类型转换为int、float、bool、string(字符串)、List(列表)、字典(dict)、集合(set)和元组(tuple)。

1、转换为int

# 从字符串转换  
s = "123"  
i = int(s,10)##后面10代表10进制,但是也可以不写
print(i, type(i))  # 输出: 123 <class 'int'>  
  
# 从浮点数转换(注意:这可能会丢失小数部分)  
f = 123.456  
i = int(f)  
print(i, type(i))  # 输出: 123 <class 'int'>

2、转换为float

# 从字符串转换  
s = "123.456"  
f = float(s)  
print(f, type(f))  # 输出: 123.456 <class 'float'>  
  
# 从整数转换  
i = 123  
f = float(i)  
print(f, type(f))  # 输出: 123.0 <class 'float'>

3、转换为bool

# bool(): 将其他数据类型转换为布尔类型
print(bool(100)) # True
print(bool(3.12)) # True
print(bool("hello")) # True
print(bool([12,34,7])) # True
print(bool((32,45,67))) # True
print(bool({"name":"三哥","age":18})) # True
print(bool(0)) # False
print(bool('')) # False
print(bool("")) # False
print(bool(' ')) # True
print(bool([])) # False
print(bool(())) #False
print(bool({})) # False
print(bool(None)) # False
# 数字0,空字符串""或者'',空列表[],空元组(),空字典{},空集合set(),None这些数据转换为bool类型 时是False.

总结一下上面的例子可以发现 (这个比较重要,后续开发中if判断用这个特点很好用)

  • 数字0,空字符串""或者'',空列表[],空元组(),空字典{},空集合set(),None这些数据转换为bool类型 时是False

  • 但是这里有个地方特别提醒一下,print(bool(' ')) # True这个中间实际是有字符(空格字符,这个判断返回True)

4、 转换为string

# 几乎所有类型都可以转换为字符串  
i = 123  
f = 123.456  
b = True  
l = [1, 2, 3]  
d = {'a': 1}  
s = str(i)  
sf = str(f)  
sb = str(b)  
sl = str(l)  
sd = str(d)  
  
print(s, sf, sb, sl, sd)  
# 输出: 123 123.456 True [1, 2, 3] {'a': 1}

5、转换为元组

在Python中,几乎所有数据类型都可以间接地转换成元组(tuple),但直接转换通常意味着将集合、列表、字典、字符串或其他可迭代对象转换为元组。这是因为元组是一个不可变的序列类型,它可以包含多种数据类型(包括其他元组)的元素。以下是一些可以直接或间接转换为元组的数据类型:

5.1列表(List)转元组

列表是最常见的可以转换为元组的数据结构。使用tuple()函数可以很容易地将列表转换为元组。

my_set = {1, 2, 3}  
my_tuple = tuple(my_set)  
print(my_tuple)  # 输出可能是 (1, 2, 3) 或 (3, 1, 2),因为集合是无序的

5.2集合(Set)转元组

集合是一个无序的、不包含重复元素的集合。虽然集合不是通过索引来访问的,但你可以使用tuple()函数将其转换为元组。

my_set = {1, 2, 3}  
my_tuple = tuple(my_set)  
print(my_tuple)  # 输出可能是 (1, 2, 3) 或 (3, 1, 2),因为集合是无序的

5.3字典(Dict)转元组

字典不能直接转换为元组,因为它包含键值对。但是,你可以通过一些方法间接地将字典的内容转换为元组。例如,将字典的项(items())转换为元组的列表,或者将键(keys())和值(values())分别转换为元组。

my_dict = {'a': 1, 'b': 2}  
# 将项转换为元组的列表  
items_tuple_list = tuple(my_dict.items())  
print(items_tuple_list)  # 输出可能是 (('a', 1), ('b', 2)),顺序可能不同  
  
# 分别将键和值转换为元组  
keys_tuple = tuple(my_dict.keys())  
values_tuple = tuple(my_dict.values())  
print(keys_tuple)  # 输出可能是 ('a', 'b')  
print(values_tuple)  # 输出可能是 (1, 2)

5.4字符串(String)转元组

my_str = "hello"  
my_tuple = tuple(my_str)  
print(my_tuple)  # 输出: ('h', 'e', 'l', 'l', 'o')

5.5其他可迭代对象转元组

my_range = range(5)  
my_tuple = tuple(my_range)  
print(my_tuple)  # 输出: (0, 1, 2, 3, 4)

5.6单个值转元组

my_value = 1  
my_single_element_tuple = (my_value,)  # 注意逗号  
print(my_single_element_tuple)  # 输出: (1,)

6、转换为List

# 字符串转换为列表(按字符分割)  
s = "hello"  
l = list(s)  
print(l, type(l))  # 输出: ['h', 'e', 'l', 'l', 'o'] <class 'list'>  
# 元组转换为列表  
t = (1, 2, 3)  
l = list(t)  
print(l, type(l))  # 输出: [1, 2, 3] <class 'list'>

注意:其他好多数据类型也可以转换成List,具体可以参考元组,可以转成元组的数据基本也可以转成List

7、字典(dict)

# 从元组列表转换(注意:需要是(key, value)对的列表)  
t_list = [('a', 1), ('b', 2)]  
d = dict(t_list)  
print(d, type(d))  # 输出: {'a': 1, 'b': 2} <class 'dict'>  
  
# 从JSON字符串转换(需要import json)  
import json  
json_str = '{"a": 1, "b": 2}'  
d = json.loads(json_str)  
print(d, type(d))  # 输出: {'a': 1, 'b': 2} <class 'dict'>

8、转换为集合

# 从列表转换  
l = [1, 2, 2, 3]  
s = set(l)  
print(s, type(s))  # 输出: {1, 2, 3} <class 'set'>  

注意:其他好多数据类型也可以转换成集合,具体可以参考元组,可以转成元组的数据基本也可以转成集合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/773604.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python】已解决:ValueError: Worksheet named ‘Sheet’ not found

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;ValueError: Worksheet named ‘Sheet’ not found 一、分析问题背景 在Python编程中&#xff0c;处理Excel文件是一个常见的任务。通常&#xff0c;我们会使用…

DFS之搜索顺序——AcWing 1116. 马走日

DFS之搜索顺序 定义 DFS之搜索顺序是指在执行深度优先搜索时&#xff0c;遍历图或树中节点的策略。具体而言&#xff0c;DFS会沿着一条路径深入到底&#xff0c;当无法继续深入时回溯&#xff0c;然后选择另一条未探索的路径继续深入。搜索顺序直接影响到搜索效率和剪枝的可能…

线性代数|机器学习-P21概率定义和Markov不等式

文章目录 1. 样本期望和方差1.1 样本期望 E ( X ) \mathrm{E}(X) E(X)1.2 样本期望 D ( X ) \mathrm{D}(X) D(X) 2. Markov 不等式&Chebyshev不等式2.1 Markov不等式公式 概述2.2 Markov不等式公式 证明&#xff1a;2.3 Markov不等式公式 举例&#xff1a;2.4 Chebyshev不…

HarmonyOS - 通过.p7b文件获取fingerprint

1、查询工程所对应的 .p7b 文件 通常新工程运行按照需要通过 DevEco Studio 的 Project Structure 勾选 Automatically generate signature 自动生成签名文件&#xff0c;自动生成的 .p7b 文件通常默认在系统用户目录下. 如&#xff1a;C:/Users/zhangsan/.ohos/config/default…

QT学习(6)——QT中的定时器事件,两种实现方式;事件的分发event,事件过滤器

目录 引出定时器事件QTimerEventQTimer 事件的分发事件过滤器 总结QT中的鼠标事件定义QLable的鼠标进入离开事件提升为myLabel重写QLabel的函数鼠标的事件鼠标的左中右键枚举鼠标多事件获取和鼠标移动鼠标追踪 QT中的信号和槽自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.…

了解 PostgerSQL 的门户 – Executor vs Process Utility

当您向 PostgreSQL 发送查询时&#xff0c;查询会依次经历多个处理阶段&#xff0c;并在最后返回结果。这些阶段称为&#xff1a; 解析 分析 重写 计划 执行 在另一篇文章中&#xff0c;我简要概述了PostgreSQL在每个查询处理阶段的主要责任。你可以在这里找到它。 https…

SS8812T替代DRV8812的国产双通道H桥电机驱动芯片

由工采网代理的SS8812T是一款国产双通道H桥电机驱动芯片&#xff1b;该芯片为打印机和其它电机一体化应用提供一种双通道集成电机驱动方案&#xff1b;可Pin-to-Pin兼容替代DRV8812&#xff0c;可广泛应用于POS、打印机、安防相机、办公自动化设备、游戏机、机器人等。 产品描述…

14-8 小型语言模型的兴起

过去几年&#xff0c;我们看到人工智能能力呈爆炸式增长&#xff0c;其中很大一部分是由大型语言模型 (LLM) 的进步推动的。GPT-3 等模型包含 1750 亿个参数&#xff0c;已经展示了生成类似人类的文本、回答问题、总结文档等能力。然而&#xff0c;虽然 LLM 的能力令人印象深刻…

第14届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2022年8月21日真题

第14届蓝桥杯Python青少组中/高级组选拔赛&#xff08;STEMA&#xff09;2022年8月21日真题 题目总数&#xff1a;5 总分数&#xff1a;128 更多真题下载点我&#x1f447;https://pan.baidu.com/s/1JRLLwW2C-OBbcY2tJ3uYJg?pwd2wk2 编程题 第 1 题 问答题 编程实现&…

antd实现简易相册,zdppy+vue3+antd实现前后端分离相册

前端代码 <template><a-image:preview"{ visible: false }":width"200"src"http://localhost:8889/download/1.jpg"click"visible true"/><div style"display: none"><a-image-preview-group:previe…

【设计模式】设计模式学习线路与总结

文章目录 一. 设计原则与思想二. 设计模式与范式三. 设计模式进阶四. 项目实战 设计模式主要是为了改善代码质量&#xff0c;对代码的重用、解耦以及重构给了最佳实践&#xff0c;如下图是我们在掌握设计模式过程中需要掌握和思考的内容概览。 一. 设计原则与思想 面向对象编…

PMP--知识卡片--波士顿矩阵

文章目录 记忆黑话概念作用图示 记忆 一说到波士顿就联想到波士顿龙虾&#xff0c;所以波士顿矩阵跟动物有关&#xff0c;狗&#xff0c;牛。 黑话 你公司的现金牛业务&#xff0c;正在逐渐变成瘦狗&#xff0c;应尽快采取收割策略&#xff1b;问题业务的储备太少&#xff0…

AGI|Transformer自注意力机制超全扫盲攻略,建议收藏!

一、前言 2017年&#xff0c;谷歌团队推出一篇神经网络的论文&#xff0c;首次提出将“自注意力”机制引入深度学习中&#xff0c;这一机制可以根据输入数据各部分重要性的不同而分配不同的权重。当ChatGPT震惊世人时&#xff0c;Transformer也随之进入大众视野。一夜之间&…

【机器学习】连续字段的特征变换

介绍 除了离散变量的重编码外&#xff0c;有的时候我们也需要对连续变量进行转化&#xff0c;以提升模型表现或模型训练效率。在之前的内容中我们曾介绍了关于连续变量标准化和归一化的相关内容&#xff0c;对连续变量而言&#xff0c;标准化可以消除量纲影响并且加快梯度下降…

智能合约与企业数字化转型:案例分析与未来展望

随着区块链技术的快速发展&#xff0c;智能合约作为其重要应用之一&#xff0c;正逐渐成为推动企业数字化转型的关键工具。智能合约不仅可以自动执行和验证合同&#xff0c;还能够增强数据安全性、优化业务流程&#xff0c;并提升企业间的信任和透明度。本文将深入探讨智能合约…

CPU cache

参考&#xff1a;https://levelup.gitconnected.com/understanding-l1-l2-and-l3-caches-how-to-improve-cpu-performance-d9dcc3e2e1f5 2、以下部分&#xff1a;如何获取x86 CPU L1、L2和L3 cache的大小 - 知乎 (zhihu.com) CPU cache是介于CPU内核和物理内存&#xff08;动态…

ssm校园志愿服务信息系统-计算机毕业设计源码97697

摘 要 随着社会的进步和信息技术的发展&#xff0c;越来越多的学校开始重视志愿服务工作&#xff0c;通过组织各种志愿服务活动&#xff0c;让学生更好地了解社会、服务社会。然而&#xff0c;在实际操作中&#xff0c;志愿服务的组织和管理面临着诸多问题&#xff0c;如志愿者…

实战演练:Fail2Ban部署全攻略,确保您的服务器免受CVE-2024-6387侵害!

Fail2Ban是一个开源的入侵防护软件&#xff0c;它可以扫描日志文件&#xff0c;识别恶意行为&#xff08;如多次失败的登录尝试&#xff09;&#xff0c;并自动采取措施&#xff08;如更新防火墙规则&#xff09;来阻止攻击者。最近&#xff0c;CVE-2024-6387漏洞的爆出使我们更…

一分钟学习数据安全—自主管理身份SSI分布式加密密钥管理

在这篇之前&#xff0c;我们已经对SSI有了一个全局的了解。这个系列的文章可以作为一个学习笔记来参考&#xff0c;真正要实践其中的一些方案、协议&#xff0c;还需要参考专业的书籍和官方文档。作为一个SSI系列学习笔记的最后一篇&#xff0c;我们做一个简单的延伸&#xff0…

无服务器【Serverless】架构的深度剖析:组件介绍、优缺点与适用场景

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《未来已来&#xff1a;云原生之旅》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、云计算的发展趋势 2、无服务器计算简介 二、无服务…