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…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案
一、延迟敏感行业面临的DDoS攻击新挑战 2025年,金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征: AI驱动的自适应攻击:攻击流量模拟真实用户行为,差异率低至0.5%,传统规则引…...
