菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 3 教程
Python3 教程 Python3 简介 Python3 环境搭建 Python3 VScode Python3 基础语法 Python3 基本数据类型 Python3 数据类型转换 Python3 解释器 Python3 注释 Python3 运算符 Python3 数字(Number) Python3 字符串 Python3 列表 Python3 元组 Python3 字典 Python3 集合 Python3 条件控制 Python3 循环语句 Python3 编程第一步 Python3 推导式 Python3 迭代器与生成器 Python3 with Python3 函数 Python3 lambda Python3 装饰器 Python3 数据结构 Python3 模块 Python __name__ Python3 输入和输出 Python3 File Python3 OS Python3 错误和异常 Python3 面向对象 Python3 命名空间/作用域 Python 虚拟环境的创建 Python 类型注解 Python3 标准库概览 Python3 实例 Python 测验

Python3 高级教程

Python3 正则表达式 Python3 CGI编程 Python3 MySQL(mysql-connector) Python3 MySQL(PyMySQL) Python3 网络编程 Python3 SMTP发送邮件 Python3 多线程 Python3 XML 解析 Python3 JSON Python3 日期和时间 Python3 内置函数 Python3 MongoDB Python3 urllib Python uWSGI 安装配置 Python3 pip Python3 operator Python math Python requests Python random Python OpenAI Python 有用的资源 Python AI 绘画 Python statistics Python hashlib Python 量化 Python pyecharts Python selenium 库 Python 爬虫 Python Scrapy 库 Python Markdown Python sys 模块 Python Pickle 模块 Python subprocess 模块 Python queue 模块 Python StringIO 模块 Python logging 模块 Python datetime 模块 Python re 模块 Python csv 模块 Python threading 模块 Python asyncio 模块 Python PyQt Python for 循环 Python while 循环
(追記) (追記ここまで)

Python3 maketrans()方法

Python3 字符串 Python3 字符串


描述

maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

两个字符串的长度必须相同,为一一对应的关系。

注:Python3.4 已经没有 string.maketrans() 了,取而代之的是内建函数: bytearray.maketrans()、bytes.maketrans()、str.maketrans()

语法

maketrans()方法语法:

string.maketrans(x[, y[, z]])

参数

  • x -- 必需,字符串中要替代的字符组成的字符串。
  • y -- 可选,相应的映射字符的字符串。
  • z -- 可选,要删除的字符。

返回值

返回字符串转换后生成的新字符串。

实例

以下实例展示了使用 maketrans() 方法将所有元音字母转换为指定的数字:

实例

#!/usr/bin/python3

# 字母 R 替换为 N
txt = "Runoob!"
mytable = txt.maketrans("R", "N")
print(txt.translate(mytable))

# 使用字符串设置要替换的字符,一一对应
intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab)

str = "this is string example....wow!!!"
print (str.translate(trantab))

以上实例输出结果如下:

Nunoob!
th3s 3s str3ng 2x1mpl2....w4w!!!

设置要删除的字符参数:

实例

#!/usr/bin/python3

txt = "Google Runoob Taobao!"
x = "mSa"
y = "eJo"
z = "odnght" # 设置删除的字符
mytable = txt.maketrans(x, y, z)
print(txt.translate(mytable))

以上实例输出结果如下:

Gle Rub Tobo!

Python3 字符串 Python3 字符串

AI 思考中...

3 篇笔记 写笔记

  1. #0

    Hen9

    yyh***@qq.com

    32

    str.maketrans(x[, y[, z]]) 静态方法

    给方法 str.translate() 创建字符映射 dict;只有一个参数时,必须是 Unicode序数(整数)或字符(长度为 1 的 String,会被转换为 Unicode 序数)映射到 Unicode 序数(整数)、任意长度字符串、None 的 dict 字典;如果有两个参数 xy,则必须是等长字符串,x 中字符映射到 y 中相同位置的字符,映射字典中 key 和 value 是单个字符转换的 Unicode 序数,如果 x 中存在重复字符则取用索引较大的字符来映射;第三个参数 z 必须为字符串,其字符都会映射到 None,z 可以不与 xy 等长,如果 z 与 x 中字符重复则优先映射到 None 而不映射到 y。

    Hen9

    yyh***@qq.com

    7年前 (2019年02月15日)
  2. #0
    93

    补充上面知识点的例子:

    1)一个参数,该参数必须为字典

    >>> d = {'a':'1','b':'2','c':'3','d':'4','e':'5','s':'6'}
    >>> trantab = str.maketrans(d)
    >>> st='just do it'
    >>> print(st.translate(trantab))
    ju6t 4o it
    

    2)两个参数 x 和 y,x、y 必须是长度相等的字符串,并且 x 中每个字符映射到 y 中相同位置的字符

    >>> x = 'abcdefs'
    >>> y = '1234567'
    >>> st='just do it'
    >>> trantab = str.maketrans(x,y)
    >>> print(st.translate(trantab))
    ju7t 4o it

    三个参数 x、y、z,第三个参数 z 必须是字符串,其字符将被映射为 None,即删除该字符;如果 z 中字符与 x 中字符重复,该重复的字符在最终结果中还是会被删除。也就是无论是否重复,只要有第三个参数 z,z 中的字符都会被删除。

    >>> x = 'abcdefs'
    >>> y='1234567'
    >>> z='ot'
    >>> st='just do it'
    >>> trantab = str.maketrans(x,y,z)
    >>> print(st.translate(trantab))
    ju7 4 i
    >>>x = 'abst'
    >>>y = '1234'
    >>>z = 's'
    >>>st = 'just do it'
    >>>trantab = str.maketrans(x,y,z)
    >>>print(st.translate(trantab))
    ju4 do i4
    
    7年前 (2019年11月11日)
  3. #0

    Qohen

    157***[email protected]

    5

    被 y 中的字符替换后就不会从 Z 中指定的删除了,如下实例中的 Gaagle Runaob 中的 a。

    >>> txt = "Gaagle Runaob Taobao!"
    >>> x = "mSa"
    >>> y = "eJo"
    >>> z = "odnght"
    >>> mytable = str.maketrans(x,y)
    >>> print(txt.translate(mytable))
    Google Runoob Tooboo!
    >>> mytable2 = str.maketrans(x,y,z)
    >>> print(txt.translate(mytable2))
    Goole Ruob Tobo!

    Qohen

    157***[email protected]

    3年前 (2023年02月23日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /