Python--数据类型转换
在Python中,数据类型的转换是一个常见的操作,涉及将一种数据类型转换为另一种数据类型。Python提供了多种内置函数用于执行这种转换,如 int()、str()、float()、list()、tuple()、set()、dict() 等。下面详细讨论Python的基本数据类型及它们之间的转换方法,包括原理和代码示例。
Python的基本数据类型
-
Number(数字):
- Python支持多种数值类型:
int(整数)、float(浮点数)、complex(复数)。 - 例如:
int: 整数类型,如1、-2。float: 浮点数类型,如3.14、-0.001。complex: 复数类型,如3 + 4j。
- Python支持多种数值类型:
-
String(字符串):
- 字符串是由字符组成的序列,使用单引号
'或双引号"包围,如"Hello"或'World'。 - 字符串是不可变类型,即一旦创建,无法修改其内容。
- 字符串是由字符组成的序列,使用单引号
-
List(列表):
- 列表是一个有序的、可变的元素集合,用方括号
[]表示,元素之间用逗号,分隔。 - 例如:
[1, 2, 3]或['apple', 'banana', 'cherry']。
- 列表是一个有序的、可变的元素集合,用方括号
-
Tuple(元组):
- 元组与列表类似,但它是不可变的,即元素不能被修改。元组用小括号
()表示。 - 例如:
(1, 2, 3)或('a', 'b', 'c')。
- 元组与列表类似,但它是不可变的,即元素不能被修改。元组用小括号
-
Set(集合):
- 集合是一个无序的、不重复的元素集合,用花括号
{}表示。 - 例如:
{1, 2, 3}或{'a', 'b', 'c'}。
- 集合是一个无序的、不重复的元素集合,用花括号
-
Dictionary(字典):
- 字典是一种键值对的集合,用花括号
{}表示,键和值之间用冒号:分隔。 - 例如:
{'name': 'Alice', 'age': 25}。
- 字典是一种键值对的集合,用花括号
数据类型转换
数字类型转换
Python提供了内置函数将数字类型进行相互转换:
- int(): 将其他类型转换为整数。
- float(): 将其他类型转换为浮点数。
- complex(): 将其他类型转换为复数。
# 将float转换为int a = 3.14 b = int(a) # 结果为3# 将int转换为float c = 5 d = float(c) # 结果为5.0# 将int转换为complex e = 7 f = complex(e) # 结果为(7+0j)
字符串和其他类型的转换
- str(): 将其他类型转换为字符串。
# 将数字转换为字符串 g = 10 h = str(g) # 结果为'10'# 将列表转换为字符串 i = [1, 2, 3] j = str(i) # 结果为'[1, 2, 3]'
- int() 和 float():从字符串转换为数值类型。
# 从字符串转换为整数 k = "123" l = int(k) # 结果为123# 从字符串转换为浮点数 m = "3.14" n = float(m) # 结果为3.14
列表和字符串的转换
- list(): 将其他类型转换为列表,特别是可以将字符串转换为字符列表。
# 将字符串转换为列表 o = "hello" p = list(o) # 结果为['h', 'e', 'l', 'l', 'o']
- str.join(): 将列表转换为字符串。
# 将字符列表转换为字符串 q = ['h', 'e', 'l', 'l', 'o'] r = ''.join(q) # 结果为'hello'
列表和元组的转换
- tuple(): 将列表转换为元组。
# 将列表转换为元组 s = [1, 2, 3] t = tuple(s) # 结果为(1, 2, 3)
- list(): 将元组转换为列表。
# 将元组转换为列表 u = (1, 2, 3) v = list(u) # 结果为[1, 2, 3]
集合和其他类型的转换
- set(): 将列表、元组或字符串转换为集合。
# 将列表转换为集合
w = [1, 2, 2, 3]
x = set(w) # 结果为{1, 2, 3}# 将字符串转换为集合
y = "hello"
z = set(y) # 结果为{'h', 'e', 'l', 'o'}
- list() 或 tuple(): 将集合转换为列表或元组。
# 将集合转换为列表
aa = {1, 2, 3}
bb = list(aa) # 结果为[1, 2, 3]# 将集合转换为元组
cc = tuple(aa) # 结果为(1, 2, 3)
字典和其他类型的转换
字典的键值对可以通过一些复杂的操作进行转换:
- dict(): 通常用于创建字典,但也可以从列表或元组的序列创建字典。
# 从键值对的列表创建字典
dd = [('name', 'Alice'), ('age', 25)]
ee = dict(dd) # 结果为{'name': 'Alice', 'age': 25}
- list() 或 tuple(): 提取字典的键或值,然后转换为列表或元组。
# 提取字典的键并转换为列表
ff = {'name': 'Alice', 'age': 25}
gg = list(ff.keys()) # 结果为['name', 'age']# 提取字典的值并转换为元组
hh = tuple(ff.values()) # 结果为('Alice', 25)
数据类型转换的注意事项
- 在进行数据类型转换时,如果尝试将不兼容的类型转换为另一种类型(如将包含非数字字符的字符串转换为整数),会引发
ValueError错误。 - 字符串转换为列表时,会将字符串中的每个字符作为列表的一个元素。
- 集合是无序且不重复的,因此从列表或字符串转换为集合时,可能会改变顺序并去除重复项。
通过这些内置函数,Python实现了灵活而强大的数据类型转换功能,使得开发者可以方便地在不同的数据类型之间进行操作和转换。
相关文章:
Python--数据类型转换
在Python中,数据类型的转换是一个常见的操作,涉及将一种数据类型转换为另一种数据类型。Python提供了多种内置函数用于执行这种转换,如 int()、str()、float()、list()、tuple()、set()、dict() 等。下面详细讨论Python的基本数据类型及它们之…...
域控ntdsutil修改架构、域命名、PDC、RID、结构主机
#笔记记录# FSMO盒修改 1、提示访问特权不够,不能执行该操作,0x2098 清除缓存账号密码并修改新架构管理员账号密码即可。 背景:更替架构主机、域命名主机 C:\Windows\system32>ntdsutil ntdsutil: roles fsmo maintenance: ?? …...
解决 Swift 6 全局变量不能满足并发安全(concurrency-safe)读写的问题
概述 WWDC 24 终于在 Swift 十岁生日发布了全新的 Swift 6。这不仅意味着 Swift 进入了全新的“大”版本时代,而且 Swift 编译器终于做到了并发代码执行的“绝对安全”。 不过,从 Swift 5 一步迈入“新时代”的小伙伴们可能对新的并发检查有些许“水土不…...
迈入退休生活,全职开发ue独立游戏上架steam
决定退休了。算了算睡后收入,也可以达到每月一万一,正好可以养家糊口。 既然退休了,那就做些想做的事情,别人养花养草,而我打算开发独立游戏上架steam。 一,盘点下目前的技术体系。 1,图形学底…...
什么是光伏气象站——仁科测控
【仁科测控,品质保障】光伏气象站,这一专门为光伏发电系统设计的监测设备,其核心能力在于精确且实时地捕捉那些对光伏发电效率产生关键影响的气象因素。这些数据不仅为评估光伏电站的发电性能提供了重要依据,更是优化运维…...
webshell免杀--免杀入门
前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文主要整理webshell免杀的一些基础思路 入门级,不是很深入,主要是整理相关概念 免杀对象 1.各类杀毒软件 类似360,火绒等,查杀己方webshell的软件。 2.各类流量…...
Linux---02---系统目录及文件基本操作命令
课程回顾 操作系统 虚拟机安装 本章重点 Linux系统目录结构 常用命令 熟练区分Linux下各层目录的作用 熟练掌握Linux的常用命令(文件命令、时间命令等) 一、Linux系统目录结构 1.1 目录结构 /: 根目录,一般根目录下只存放…...
CSP-J/S第一轮初赛模拟赛试题
本模拟试题为本人自创,由于发布在 LG 所以就直接放入链接。 非经允许,不得转载。 本套模拟题只供大家练习使用,不保证难度与真实 CSP-J/S 完全符合。 本模拟赛为专业CSP类型的模拟赛,不存在错题、超出知识的题目。 CSP-J/S 20…...
LangGPT结构化提示词
LangGPT是Language For GPT-like LLMs的简称,中文名为结构化提示词,LangGPT是一个帮助你编写高质量提示词的工具,理论基础是我们提出的一套模块化、标准化的提斯提编写方法论——结构化提示词。我们希望揭开提示工程的神秘面纱,为…...
如何为个人网站更换ssl证书
关键步骤 1,确认服务器类型并下载对应证书(这个超级简单,阿里云现在可以下3月免费的); 2,本文以nginx服务为例,主打的就是一个简单且快速让你搞清楚实操流程; linux命令 ps-ef|gr…...
RabbitMQ-消息队列延迟队列一
1、安装rabbitmq 怎么安装rabbitmq请查看之前课程,如果已经安装,请略过此步。 2、创建vendor文件夹或是直接采用PHP框架 mkdir vendor 3、进入文件 cd vendor 4、安装php扩展 composer require php-amqplib/php-amqplib 5、进入上级创建dead文件…...
JavaScript中普通对象和Map对象的区别
在JavaScript中,普通对象({})和 Map 对象都是用于存储键值对的数据结构,但是他们有一些区别。 1. 键的类型 普通对象: 对象的键必须是字符串或 Symbol 类型。其他类型的值(如数字、布尔值、对象等&#x…...
Liunx搭建Rustdesk远程桌面服务
1、环境准备 Linux:centos7.9 rustdesk server安装包 很多新服务器并没有 wget 和unzip 可以通过yum自行安装下,如果系统中有wget但不能使用,直接卸载重装即可。 yum install wget wget --no-check-certificate https://github.com/rust…...
antv X6--实现节点旁添加多个text标签
前言:接本专栏上篇文章,实现一个新需求,如有不懂的可先去看新手教程 需求描述:如何在节点旁添加多个标签,如下图所示: 实现该需求目前我只想到两种方法: 方法一:使用换行符将不同的…...
JAVA--多线程
Java中的多线程是指在同一个Java虚拟机(JVM)中并发执行多个线程的能力。线程是程序执行的最小单元,Java提供了丰富的API来创建和管理线程。以下是Java中实现多线程的一些关键概念和方法: Thread 类:Java提供了Thread类…...
ADB-DROM
# 读硬件信息 adb shell "cat /sys/block/mmcblk0/device/name" # MT6767/MT6768/MT6769/MT6762/MT6765/MT6761... # 频率档位 # 固定频率 adb shell "echo 0 > /sys/devices/platform/10012000.dvfsrc/helio-dvfsrc/dvfsrc_force_vcore_dvfs_opp" # …...
mysql 之 explain
1. 查看表的创建字段以及索引情况 show create table user_recommend; 2. 创建索引的原则:列的值比较离散 像性别字段,只有男,女 或者其他;expose字段,只有1分发,0不可分发。就不适宜在这种字段上添加索引…...
CentOS迁移案例 | 保障轨道交通安全、发挥基础设施效能,麒麟信安操作系统支撑某市轨道交通畅行无忧
为缓解城市交通拥堵难题,某市轨道交通公司计划新建一条贯穿城市关键区域、沿路设立20座站点的轨道交通线路,并基于麒麟信安操作系统构建轨道交通信号系统。 轨道交通信号系统是列车核心控制系统,负责列车运行的自动化控制,及对整…...
获取操作系统的信息(Go语言)
在 Go 语言中,你可以使用 runtime 和 os 包来查看操作系统的信息。以下是一些常见的操作系统信息获取方法: 1. 获取操作系统类型和架构信息 Go 的 runtime 包提供了基本的操作系统和架构信息: package mainimport ("fmt""r…...
【论文阅读】HuatuoGPT-II, One-stage Training for Medical Adaption of LLMs
总体概要 本文深入探讨了一款专为医疗领域设计的大规模语言模型——HuatuoGPT-II的创新、性能与应用。HuatuoGPT-II采用统一的单阶段训练流程,将传统的继续预训练和监督微调整合,有效解决了医疗数据的异质性问题,包括语言、体裁和格式差异&a…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
大数据治理的常见方式
大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法,以下是几种常见的治理方式: 1. 数据质量管理 核心方法: 数据校验:建立数据校验规则(格式、范围、一致性等)数据清洗&…...
链式法则中 复合函数的推导路径 多变量“信息传递路径”
非常好,我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题,统一使用 二重复合函数: z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y)) 来全面说明。我们会展示其全微分形式(偏导…...
