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

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题:安全。文章将详细阐述认证(Authentication) 与授权(Authorization的核心概念,对比传统 Session-Cookie 与现代 JWT(JS…...
Spring事务传播机制有哪些?
导语: Spring事务传播机制是后端面试中的必考知识点,特别容易出现在“项目细节挖掘”阶段。面试官通过它来判断你是否真正理解事务控制的本质与异常传播机制。本文将从实战与源码角度出发,全面剖析Spring事务传播机制,帮助你答得有…...