str.maketrans() 方法

str.maketrans() 方法

功能概述

str.maketrans() 是 Python 中字符串对象的一个静态方法,用于创建一个字符映射转换表。这个转换表本质上是一个字典,它定义了字符之间的替换规则,后续可以被 str.translate() 方法使用,以实现字符串中字符的批量替换。

语法及参数

str.maketrans() 方法有三种不同的调用方式:

方式一:一个参数的情况
str.maketrans(table)
  • 参数
    • table:必须是一个字典,字典的键是单个字符(字符串长度为 1),值可以是单个字符、字符串或者 None。当值是单个字符时,表示将键对应的字符替换为该值对应的字符;当值是字符串时,这种情况通常不常用,因为 translate() 方法会将字符串视为单个字符处理;当值为 None 时,表示删除键对应的字符。
  • 示例
# 创建一个字符映射转换表,将 'a' 替换为 'X',删除 'b'
table = str.maketrans({'a': 'X', 'b': None})
print(table)  # 输出是一个字典,键是字符的 ASCII 码值
#{97: 'X', 98: None} 后续使用translate方法时,遇到ASCII 码97会转化为X,遇到ASCII 码98会删掉元素s = 'abc'
new_s = s.translate(table)
print(new_s)  # 输出: Xc
方式二:两个参数的情况
str.maketrans(from_str, to_str)
  • 参数
    • from_str:必须是一个字符串,包含要被替换的字符。
    • to_str:必须是一个与 from_str 长度相同的字符串,包含替换后的字符,且 from_str 中的每个字符会依次对应 to_str 中相同位置的字符。
  • 示例
# 创建一个字符映射转换表,将 'abc' 分别替换为 'XYZ'
table = str.maketrans('abc', 'XYZ')
print(table)
#{97: 88, 98: 89, 99: 90}s = 'abc'
s = s.translate(table)
print(s)
#XYZ
方式三:三个参数的情况
str.maketrans(from_str, to_str, deletechars)
  • 参数
    • from_strto_str 的含义与两个参数的情况相同。
    • deletechars:一个字符串,包含要从输入字符串中删除的字符。
  • 示例
# 创建一个字符映射转换表,将 'abc' 分别替换为 'XYZ',并删除 'd'
table = str.maketrans('abc', 'XYZ', 'd')
print(table)
#{97: 88, 98: 89, 99: 90, 100: None}
s = 'abcd'
s = s.translate(table)
print(s)
#XYZ

str.translate() 方法

功能概述

str.translate() 方法用于根据 str.maketrans() 方法创建的字符映射转换表,对字符串中的字符进行批量替换或删除操作。

语法及参数
str.translate(table)
  • 参数
    • table:是由 str.maketrans() 方法返回的字符映射转换表。
  • 示例
# 使用两个参数的 maketrans 创建转换表
table = str.maketrans('abc', 'XYZ')
s = 'abcdef'
new_s = s.translate(table)
print(new_s)  # 输出: XYZdef# 使用三个参数的 maketrans 创建转换表
table = str.maketrans('abc', 'XYZ', 'd')
s = 'abcdef'
new_s = s.translate(table)
print(new_s)  # 输出: XYZef

总结

str.maketrans() 方法的作用是创建字符映射转换表,定义字符的替换和删除规则;而 str.translate() 方法则根据这个转换表对字符串进行实际的替换和删除操作。通过这两个方法的配合使用,可以方便地实现字符串中字符的批量处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/98250.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/98250.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

敏感词检测API平台推荐

敏感词检测API平台推荐 背景简介 敏感词检测用于识别文本中的违规、涉政、涉黄、辱骂等敏感词,帮助产品在评论、弹幕、客服对话、运营文案、广告投放等环节实现自动化质检与合规拦截。市场上主要有两类服务商: 专业型厂商:聚焦算法与工程落…

Day25_【深度学习(3)—PyTorch使用(6)—张量拼接操作】

张量的拼接操作在神经网络搭建过程中是非常常用的方法,例如: 在后面将要学习的注意力机制中都使用到了张量拼接。torch.cat 函数可以将两个张量根据指定的维度拼接起来,不改变数据维度。前提:除了拼接的维度,其他维度一定要相同。…

机器视觉在PCB制造中的检测应用

机器视觉在PCB制造中的检测应用🎯机器视觉在PCB制造中的检测应用🎯一、基材预处理阶段:基材表面缺陷检测🎯二、线路制作阶段:线路精度与缺陷检测🎯三、钻孔与导通孔加工阶段:孔位与孔质量检测&a…

Python面试题及详细答案150道(136-150) -- 网络编程及常见问题篇

《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

【pdf.js】pdf检索对应文本和高亮功能

文章目录需求场景1、使用pdf.js解决pdf.js跨域2、预览方案3、检索方案4、实现效果✒️总结需求场景 本文主要针对网页端 PDF 本地预览场景,支持通过关键字对 PDF 进行检索查询,当点击检索结果列表中的对应关键字时,可同步在预览界面中触发内容…

kafka--基础知识点--9.1--consumer 至多一次、至少一次、精确一次

1 自动提交 1.1 原理: Kafka 消费者后台线程每隔 auto.commit.interval.ms 自动提交最近一次 poll() 的 offset 无需开发者干预 1.2 示例: enable.auto.committrue auto.commit.interval.ms5000 # 每 5 秒自动提交一次 from confluent_kafka import Con…

Python中的类:从入门到实战,掌握面向对象编程的核心

目录 一、类的概念:从“模板”到“个体” 1.1 什么是类? 1.2 类与对象的关系:模板与实例 1.3 类的核心价值:封装与抽象 二、类的形式:Python中的类定义语法 2.1 类的基本定义 2.2 关键组成解析 (1&a…

用户争夺与智能管理:定制开发开源AI智能名片S2B2C商城小程序的战略价值与实践路径

摘要 在零售行业数字化转型的浪潮中,用户争夺已从传统流量竞争转向对用户24小时时间分配权的深度渗透。本文以定制开发开源AI智能名片S2B2C商城小程序为核心研究对象,系统探讨其通过技术赋能重构用户接触场景、提升转化效率、增强会员黏性的作用机制。结…

数学_向量投影相关

Part 1 你的问题是:设相机光心的朝向 w (0, 0, 1)(即朝向正前方,Z 轴正方向), 在 相机坐标系下有一个平面,其法向量为 n_cam, 问:w 在该平面上的投影的单位向量 w_p,是不…

从RTSP到HLS:构建一个简单的流媒体转换服务(java spring)

从RTSP到HLS:构建一个简单的流媒体转换服务(java spring) 在当今的网络环境中,实时视频流媒体应用越来越广泛,从在线直播到安防监控,都离不开流媒体技术的支持。然而,不同的流媒体协议有着各自的特点和适用场景。本文…

【代码随想录算法训练营——Day15】二叉树——110.平衡二叉树、257.二叉树的所有路径、404.左叶子之和、222.完全二叉树的节点个数

LeetCode题目链接 https://leetcode.cn/problems/balanced-binary-tree/ https://leetcode.cn/problems/binary-tree-paths/ https://leetcode.cn/problems/sum-of-left-leaves/ https://leetcode.cn/problems/count-complete-tree-nodes/ 题解 110.平衡二叉树想到用左子树的高…

JVM新生代/老年代垃圾回收器、内存分配与回收策略

新生代垃圾收集器 1. Serial收集器 serial收集器即串行收集器,是一个单线程收集器。 串行收集器在进行垃圾回收时只使用一个CPU或一条收集线程去完成垃圾回收工作,并且会暂停其他的工作线程(stop the world),直至回收完…

Unity Mirror 多人同步 基础教程

Unity Mirror 多人同步 基础教程MirrorNetworkManager(网络管理器)Configuration:配置Auto-Start Options:自动启动Scene Management:场景管理Network Info:网络信息Authentication:身份验证Pla…

基于红尾鹰优化的LSTM深度学习网络模型(RTH-LSTM)的一维时间序列预测算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.部分程序 4.算法理论概述 5.完整程序 1.程序功能描述 红尾鹰优化的LSTM(RTH-LSTM)算法,是将红尾鹰优化算法(Red-Tailed Hawk Optimization, RTHO)与长短期…

深度学习“调参”黑话手册:学习率、Batch Size、Epoch都是啥?

点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,注册即送-H卡级别算力,80G大显存,按量计费,灵活弹性,顶级配置,学生更享专属优惠。 引言:从"炼丹"到科学,…

【网络实验】-MUX-VLAN

实验拓扑实验要求: 在企业网络中,企业员工和企业客户可以访问企业的服务器,对于企业来说,希望员工之间可以互相交流,但是企业用户之间相互隔离,不能够访问。为了实现所有用户都可以访问企业服务器&#xff…

Java泛型:类型安全的艺术与实践指南

Java泛型&#xff1a;类型安全的艺术与实践指南 前言&#xff1a;一个常见的编译错误 最近在开发中遇到了这样一个编译错误&#xff1a; Required type: Callable<Object> Provided: SalesPitchTask这个看似简单的错误背后&#xff0c;隐藏着Java泛型设计的深层哲学。今天…

UMI企业智脑 2.1.0:智能营销新引擎,图文矩阵引领内容创作新潮流

在数字营销日益激烈的今天&#xff0c;企业如何在信息洪流中脱颖而出&#xff1f;UMI企业智脑 2.1.0 的发布为企业提供了全新的解决方案。这款智能营销工具结合了先进的AI技术与数据驱动策略&#xff0c;帮助企业优化营销流程、提升效率&#xff0c;并通过图文矩阵实现内容创作…

Lustre Ceph GlusterFS NAS 需要挂载在k8s容器上,数据量少,选择哪一个存储较好

在 K8s 容器环境中&#xff0c;数据量 不大的 规模下&#xff0c;Lustre、Ceph、GlusterFS 和 NAS 的选择需结合性能需求、运维成本、扩展性和K8s 适配性综合判断。以下是针对性分析及推荐&#xff1a;一、核心对比与适用场景二、关键决策因素1. 性能需求高并发 / 高吞吐&#…

深入解析 Apache Doris 写入原理:一条数据的“落地之旅”

在日常的数据分析场景中&#xff0c;我们经常会向 Apache Doris 写入大量数据&#xff0c;无论是实时导入、批量导入&#xff0c;还是通过流式写入。但你是否想过&#xff1a;一条数据从客户端发出&#xff0c;到最终稳定落盘&#xff0c;中间到底经历了哪些步骤&#xff1f; …