文章目录

  • maketrans()
    • 语法:
    • 参数:
    • 返回值:
    • 示例:
  • translate()
    • 语法
    • 参数
    • 返回值
    • 示例
  • 小案例

maketrans()

用于创建字符映射的转换表

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

语法:

str.maketrans(dict)
str.maketrans(intab,outtab[,delchars])

参数:

只有一个参数时,必须是 Unicode序数(整数)或字符(长度为 1 的 String,会被转换为 Unicode 序数)映射到 Unicode 序数(整数)、任意长度字符串、None 的 dict 字典。

如果有两个参数,则它们必须是长度相等的字符串,并且在结果字典中,x中的每个字符都将映射到中相同位置的字符。 如果有第三个参数, 必须是一个字符串,其字符将在结果中映射为None。

返回值:

返回一个字符映射转换表供 translate() 方法调用

示例:

# 一个参数
>>> dct = {'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
>>> table = str.maketrans(dct)
>>> print(table)
{97: 1, 98: 2, 99: 3, 100: 4, 101: 5, 102: 6}# 多个参数
>>> intab = "abcdef"
>>> outtab = "123456"
>>> delchars = "f"
>>> table = str.maketrans(intab,outtab,delchars)
>>> print(table)
{97: 49, 98: 50, 99: 51, 100: 52, 101: 53, 102: None}

translate()

根据参数 table给出的表转换字符串

根据 python3.7.3 文档,str 类型的 translate() 函数只接受一个参数,没有第二个 delete参数了。

语法

str.translate(table)
bytes.translate(table[, delete])
bytearray.translate(table[, delete])

参数

table – 翻译表,翻译表是通过maketrans方法转换而来。
deletechars – 字符串中要过滤的字符列表。

返回值

返回翻译后的字符串

示例

>>> intab = "ehlocans"
>>> outtab = "!@#$%^&*"
>>> trantab = str.maketrans(intab, outtab)
>>> text = "hello can you speak chinese"
>>> print(text.translate(trantab))
@!##$ %^& y$u *p!^k %@i&!*!

小案例

加密 / 解密 古诗

# 转换函数
def encrypt(text,type="encrypt"):old_text = "上不举乡低光前啼地声处多夜头少床思故明春是晓月望来疑眠知花落觉闻雨霜风鸟,。"new_text = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL"# 加密映射表encrypt_map = str.maketrans(old_text,new_text)# 解密映射表decrypt_map = str.maketrans(new_text,old_text)if type == "encrypt":result = text.translate(encrypt_map)elif type == "decrypt":result = text.translate(decrypt_map)else:return Falsereturn resultif __name__ == "__main__":text = "春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。"text2 = "床前明月光,疑是地上霜。举头望明月,低头思故乡。"encrypt1 = encrypt(text)encrypt2 = encrypt(text2)print("text加密:"+encrypt1)print("text2加密:"+encrypt2)print()decrypt1 = encrypt(encrypt1,"decrypt")decrypt2 = encrypt(encrypt2,"decrypt")print(f"{encrypt1} 解密:{decrypt1}")print(f"{encrypt2} 解密:{decrypt2}")

translate maketrans 方法详解相关推荐

  1. 序列内置方法详解(string/list/tuple)

    一.常用方法集合 1.1.string,字符串常用方法 以下举例是python2.7测试: 函数名称 作用 举例 str.capitalize() 字符串第一个字符如果是字母,则把字母替换为大写字母. ...

  2. Python 字符串方法详解

    Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息. 在编程中,几 ...

  3. 【Python入门】Python字符串的45个方法详解

    Python中字符串对象提供了很多方法来操作字符串,功能相当丰富.必须进行全面的了解与学习,后面的代码处理才能更得心应手,编程水平走向新台阶的坚实基础.目前一共有45个方法,给大家分类整理,可以收藏查 ...

  4. python3.6.6卸载_Python3.6安装卸载、执行命令、执行py文件的方法详解

    Python3.6安装卸载.执行命令.执行py文件的方法详解 开发一个功能,C/C++可能要500行代码,Java可能需要200行代码,然而Python可能需要50行代码,虽然代码少,可能开发的飞起, ...

  5. java 气泡图_D3.js实现散点图和气泡图的方法详解

    前言 小编之前已经跟大家分享过了<D3.js实现柱状图的方法详解>和<D3.js实现折线图的方法详解>这两篇文章,已经介绍过柱状图和折线图了.下面就来说说和这两种非常相似的图表 ...

  6. python统计csv行数_对Python 多线程统计所有csv文件的行数方法详解

    如下所示: #统计某文件夹下的所有csv文件的行数(多线程) import threading import csv import os class MyThreadLine(threading.Th ...

  7. python修改文件内容_Python批量修改文本文件内容的方法详解

    这篇文章主要介绍了Python批量修改文本文件内容的方法的相关资料,需要的朋友可以参考下 Python批量替换文件内容,支持嵌套文件夹 import os path="./" fo ...

  8. python二维元组_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)

    如何去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  9. Spring JdbcTemplate方法详解

    2019独角兽企业重金招聘Python工程师标准>>> Spring JdbcTemplate方法详解 标签: springhsqldbjava存储数据库相关sql 2012-07- ...

  10. golang 解析php序列化,golang实现php里的serialize()和unserialize()序列和反序列方法详解...

    Golang 实现 PHP里的 serialize() . unserialize() 安装 go get -u github.com/techleeone/gophp/serialize 用法 pa ...

最新文章

  1. python实例变量初始化_Python – 应该在__init__中初始化所有成员变量
  2. hihoCoder 1367 等式填空
  3. Git 将代码回到指定版本
  4. C++设计模式--工厂方法模式
  5. Spark Streaming 实战案例(一)
  6. Java加密与解密的艺术~数字签名~DSA实现
  7. 面试官系统精讲Java源码及大厂真题 - 08 HashMap 源码解析
  8. iOS MJRefresh下拉刷新(上拉加载)使用详解
  9. 4.Mongodb之js脚本
  10. IPMI IPMB协议
  11. 一文带你入门 HTTP 协议
  12. 基于Java Servlet图片服务器
  13. 2020春招阿里一面
  14. 基于windows7的usb多点触控设备
  15. uniapp接入支付宝支付详细申请流程2021.6.1
  16. 柳传志内部邮件曝光:联想筹备1年等待大反攻
  17. Halcon开发笔记001 尺寸测量实例分析
  18. IDEA激活,JetBrains校园邮箱申请
  19. Navicat Premium注册
  20. 添加网站外链的10个小技巧-成都网站建设

热门文章

  1. mysql只有frm_MySQL只有.frm和.ibd文件如何批量恢复InnoDB表-爱可生
  2. Python: Basemap进行数据可视化分析------专题图绘制
  3. python语言的特点包括哪些_Python的特点有哪些特点
  4. python-ip端口扫描器
  5. for in在python中什么意思_Python for 循环中 in 关键字含义是什么?
  6. 数显之家快讯:【SHIO世硕心语】2021年,中国最赚钱的时代到来!
  7. 一文让你理解什么是shallow heap及retained heap
  8. mac 查看端口使用情况
  9. AV1代码学习:编码端aomenc.c的main函数
  10. iOS的高德地图标注特定位置