当前位置: 首页 > news >正文

Python--数据类型转换

在Python中,数据类型的转换是一个常见的操作,涉及将一种数据类型转换为另一种数据类型。Python提供了多种内置函数用于执行这种转换,如 int()str()float()list()tuple()set()dict() 等。下面详细讨论Python的基本数据类型及它们之间的转换方法,包括原理和代码示例。

Python的基本数据类型

  1. Number(数字)

    • Python支持多种数值类型:int(整数)、float(浮点数)、complex(复数)。
    • 例如:
      • int: 整数类型,如 1-2
      • float: 浮点数类型,如 3.14-0.001
      • complex: 复数类型,如 3 + 4j
  2. String(字符串)

    • 字符串是由字符组成的序列,使用单引号 ' 或双引号 " 包围,如 "Hello"'World'
    • 字符串是不可变类型,即一旦创建,无法修改其内容。
  3. List(列表)

    • 列表是一个有序的、可变的元素集合,用方括号 [] 表示,元素之间用逗号 , 分隔。
    • 例如:[1, 2, 3]['apple', 'banana', 'cherry']
  4. Tuple(元组)

    • 元组与列表类似,但它是不可变的,即元素不能被修改。元组用小括号 () 表示。
    • 例如:(1, 2, 3)('a', 'b', 'c')
  5. Set(集合)

    • 集合是一个无序的、不重复的元素集合,用花括号 {} 表示。
    • 例如:{1, 2, 3}{'a', 'b', 'c'}
  6. 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…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

【kafka】Golang实现分布式Masscan任务调度系统

要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...

【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 编写的,需要先安…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...

Python学习(8) ----- Python的类与对象

Python 中的类(Class)与对象(Object)是面向对象编程(OOP)的核心。我们可以通过“类是模板,对象是实例”来理解它们的关系。 🧱 一句话理解: 类就像“图纸”,对…...