如何通过python创建所有字符串的映射表
Admin 2022-12-22 群英技术资讯 1967 次浏览
本篇内容介绍了“如何通过python创建所有字符串的映射表”的有关知识,在实际项目的操作过程或是学习过程中,不少人都会遇到这样的问题,接下来就让小编带大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!题目:
pattern = "abba",s="dog cat cat dog"---->True
pattern = "abba",s="dog cat cat fish"----->False
class Solution:
def is_pattern_matched(self, pattern:str,s: str) -> bool:
pattern = list(''.join(pattern))
s = s.split(" ")
a = {}
for i in range(len(pattern)):
a.update({pattern[i]:s[i]})#update() 方法用于修改/更新当前集合/字典,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。
# a = zip(pattern,s)
# a = dict(a)
for j in range(len(pattern)):
if s[j] != a[pattern[j]]:
return False
else:
return True
pattern = "abba"
s = "dog cat cat dog"
S = Solution()
result = S.is_pattern_matched(pattern,s)
print(result)
python中有一个内建函数maketrans()可以对两个字符串进行字符映射,创建出映射表。
结构如下:
str.maketrans(intab,outtab)
当使用该函数时,将会把intab中的字符串对out字符串中的字符进行一一对应。
而使用translate()函数则可以利用映射表字符对指定字符串的字符进行替换。
结构如下:
str.translate(table)
示例:
str1="abcdefghijklmnopqrstuvwxyz" str2="qwertyuiopasdfghjklzxcvbnm" table=str.maketrans(str1,str2) str="sword art online" print(str.translate(table))#==>lvgkr qkz gfsoft
上面的例子使用了这两个函数写了一个简单的加密程序。其中str1是函数str.maketrans(intab,outtab)中的intab,而str2是str.maketrans(intab,outtab)中的outtab。
不过这种加密方法有一个问题。就是intab与outtab所代表的的字符串的长度必须一致,且各自的字符串中的字符必须唯一,否则解密时容易出错。
示例:
str1="abcdefghijklmnopqrstuvwxyz" str2="qwertyuiopasdfghjklzxcvbnm" table1=str.maketrans(str1,str2) table1_1=str.maketrans(str2,str1) str="sword art online" jiami=str.translate(table1) jiemi=jiami.translate(table1_1) print(jiami)#==>lvgkr qkz gfsoft print(jiemi)#==>sword art online
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Cookie用于服务器实现会话,用户登录及相关功能时进行状态管理。要在用户浏览器上安装cookie,HTTP服务器向HTTP响应添加类似以下内容的HTTP
这篇文章主要介绍了使用Python和scikit-learn创建混淆矩阵的示例详解,该示例包括生成数据集、为数据集选择合适的机器学习模型、构建、配置和训练它,最后解释结果,即混淆矩阵,需要的朋友可以参考下
Python邮件处理怎样实现?对于邮件处理是比较常见的需求,下面小编就给大家介绍一下使用Python实现邮件处理的操作,下面示例具有一定的参考价值,感谢的朋友可以参考了解看看
这篇文章主要为大家介绍了如何利用Python实现电脑壁纸的采集以及轮换效果,文中的示例代码讲解详细,对我们学习Python有一定帮助,需要的可以参考一下
这篇文章主要为大家介绍了Python语法之模块Module,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008