【玩转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.mzph.cn/bicheng/42454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 在清单文件中配置receiver,系统是何时会注册此广播接收者的?

在 Android 中&#xff0c;通过清单文件&#xff08;AndroidManifest.xml&#xff09;配置的广播接收器&#xff08;BroadcastReceiver&#xff09;&#xff0c;系统会在特定的时机自动注册这些广播接收器。以下是详细的说明&#xff1a; 静态注册的广播接收器 静态注册的广播…

爱了!8款超好用的PC端办公软件!

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 你电脑中用的最久的软件是哪些&#xff1f;以下是否有你曾经使用过的软件呢&#xff1f;工欲善其事&#xff0c;必先利其器&#xff0c;今天继续…

无人机便携式侦测干扰设备(定全向)技术详解

无人机便携式侦测干扰设备&#xff08;定全向&#xff09;是一种专门针对无人机进行侦测和干扰的设备。它具备定向和全向两种工作模式&#xff0c;能够覆盖较宽的频率范围&#xff0c;有效侦测并干扰无人机与遥控器之间的通信信号&#xff0c;从而达到控制或驱离无人机的目的。…

验证回文串-string题目

用双指针&#xff0c;left right从两头往中间对比&#xff0c;不是字母的都略过&#xff0c;比的时候化成小写字母 125. 验证回文串 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:bool isPalindrome(string s) {if(s.size() < 1)return true;int left …

Java SE入门及基础(61) 死锁 死锁发生条件

目录 死锁 1. 死锁的概念 2. 死锁发生条件 互斥条件 不可剥夺条件 请求与保持条件 循环等待 3. 案例分析 示例 分析 死锁 1. 死锁的概念 Deadlock describes a situation where two or more threads are blocked forever, waiting for each other 死锁描述了一种情…

帧布局的概念与属性

帧布局&#xff08;FrameLayout&#xff09;顾名思义就是将控件一层一层叠在一起&#xff0c;像视频的帧一样&#xff0c;一层叠一层&#xff0c;如图所示&#xff0c;帧布局中BUTTON叠在ImageView之上。帧布局常见的属性见表1。帧布局中的控件可以使用android:layout_gravity&…

论文复现-基于决策树算法构建银行贷款审批预测模型(金融风控场景)

作者Toby&#xff0c;来源公众号&#xff1a;Python风控模型&#xff0c;基于决策树算法构建银行贷款审批预测模型 目录 1.金融风控论文复现 2.项目背景介绍 3.决策树介绍 4.数据集介绍 5.合规风险提醒 6.技术工具 7.实验过程 7.1导入数据 7.2数据预处理 7.3数据可…

Spring Boot中的数据迁移策略

Spring Boot中的数据迁移策略 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 一、引言 在软件开发的过程中&#xff0c;经常会遇到需要修改数据库结构、迁移…

SpringBoot3+Vue3开发园区管理系统

介绍 在当今快速发展的城市化进程中&#xff0c;高效、智能的园区管理成为了提升居民生活品质、优化企业运营环境的关键。为此&#xff0c;我们精心打造了全方位、一体化的园区综合管理系统&#xff0c;该系统深度融合了园区管理、楼栋管理、楼层管理、房间管理以及车位管理等…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【明文导入密钥(ArkTS)】

明文导入密钥(ArkTS) 分别以导入AES256与RSA2048密钥为例&#xff0c;具体的场景介绍及支持的算法规格 开发步骤 指定密钥别名keyAlias。 密钥别名的最大长度为64字节。 封装密钥属性集和密钥材料。 密钥属性集同样与密钥生成中指定的密钥属性一致&#xff0c;须包含[HuksKe…

比较链表和数组在数据结构中的优缺点和适用场景。

在数据结构中&#xff0c;链表&#xff08;Linked List&#xff09;和数组&#xff08;Array&#xff09;是两种基础且广泛使用的数据结构&#xff0c;它们各有其独特的优缺点&#xff0c;适用于不同的场景。下面从技术难点、面试官关注点、回答吸引力及代码举例四个方面详细阐…

昇思MindSpore学习总结十——ResNet50迁移学习

1、迁移学习 &#xff08;抄自CS231n Convolutional Neural Networks for Visual Recognition&#xff09; 在实践中&#xff0c;很少有人从头开始训练整个卷积网络&#xff08;使用随机初始化&#xff09;&#xff0c;因为拥有足够大小的数据集相对罕见。相反&#xff0c;通常…

Apache Seata透过源码解决SeataAT模式整合Mybatis-Plus失去MP特性的问题

本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 Apache Seata透过源码解决SeataAT模式整合Mybatis-Plus失去MP特性的问题 透过源码解决SeataAT…

【机器学习】机器学习与时间序列分析的融合应用与性能优化新探索

文章目录 引言第一章&#xff1a;机器学习在时间序列分析中的应用1.1 数据预处理1.1.1 数据清洗1.1.2 数据归一化1.1.3 数据增强 1.2 模型选择1.2.1 自回归模型1.2.2 移动平均模型1.2.3 长短期记忆网络1.2.4 卷积神经网络 1.3 模型训练1.3.1 梯度下降1.3.2 随机梯度下降1.3.3 A…

SpringCloud学习Day7:Seata

概念 Seata是一款开源的分布式事务解决方案&#xff0c;致力于在微服务架构下提供高性能和简单易用的分布式事务服务 工作流程 TC以Seata服务器形式独立部署&#xff0c;TM和RM则是以Seata Client的形式集成在微服务中运行

1958.检查操作是否合法

解题思路 思路是对的&#xff0c;是否存在好线段&#xff0c;则需要从给定节点的8个方向出发&#xff0c;然后寻找是否存在。 方向的问题&#xff0c;则构建行列下标变化量&#xff0c; C 注意在某个方向上的检查函数&#xff0c;可用step进行判断是否是当前节点的下一个节点…

关于同居关系析产纠纷相关裁判规则

1.同居期间双方共同所得的收入和购置的财产&#xff0c;按一般共有财产处理&#xff1b;同居期间为共同生产生活而形成的债权、债务&#xff0c;按共同债权、债务处理——王某某诉张某某同居关系析产纠纷案案例要旨&#xff1a;未办理结婚登记而以夫妻名义同居生活的&#xff0…

240707_昇思学习打卡-Day19-基于MindSpore通过GPT实现情感分类

240707_昇思学习打卡-Day19-基于MindSpore通过GPT实现情感分类 今天基于GPT实现一个情感分类的功能&#xff0c;假设已经安装好了MindSpore环境。 # 该案例在 mindnlp 0.3.1 版本完成适配&#xff0c;如果发现案例跑不通&#xff0c;可以指定mindnlp版本&#xff0c;执行!pip…

Mysql数据库索引、事务相关知识

索引 索引是一种特殊的文件&#xff0c;包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引&#xff0c; 并指定索引的类型&#xff0c;各类索引有各自的数据结构实现 查看索引 show index from 表名;创建索引对于非主键、非唯一约束、非外键的字段&#…

基于贝叶斯优化的卷积神经网络-循环神经网络混合模型的的模拟股票时间序列预测(MATLAB R2021B)

将机器学习和深度学习方法运用到股市分析中, 不仅具有一定的理论价值, 也具有一定的实践价值。从理论价值上讲, 中国的量化投资技术&#xff08;投资观念、方法与决策等&#xff09;还不够成熟, 尚处在起步阶段, 能够将量化投资技术运用到投资决策中的公司寥寥无几。目前, 国内…