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…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...