python实现两字符串映射

 更新时间:2022年11月03日 08:48:14   作者:AII派森  
这篇文章主要介绍了python实现两字符串映射方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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字符映射表和字符替换

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python中类方法@classmethod和静态方法@staticmethod解析

    Python中类方法@classmethod和静态方法@staticmethod解析

    这篇文章主要介绍了Python中类方法@classmethod和静态方法@staticmethod解析,python中存在三种方法,分别为常规方法(定义中传入self)、@classmethod修饰的类方法、@staticmethod修饰的静态方法,,需要的朋友可以参考下
    2023-08-08
  • python 如何对logging日志封装

    python 如何对logging日志封装

    这篇文章主要介绍了python 如何对logging日志封装,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • python利用smtplib实现QQ邮箱发送邮件

    python利用smtplib实现QQ邮箱发送邮件

    这篇文章主要为大家详细介绍了python利用smtplib实现QQ邮箱发送邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Flask框架的学习指南之用户登录管理

    Flask框架的学习指南之用户登录管理

    本文是Flask框架的学习指南系列文章的第三篇,主要给大家讲述的是制作flask的登陆管理模块,有需要的小伙伴可以参考下
    2016-11-11
  • Python使用面向对象方式创建线程实现12306售票系统

    Python使用面向对象方式创建线程实现12306售票系统

    目前python 提供了几种多线程实现方式 thread,threading,multithreading ,其中thread模块比较底层,而threading模块是对thread做了一些包装,可以更加方便的被使用
    2015-12-12
  • python实现读Excel写入.txt的方法

    python实现读Excel写入.txt的方法

    下面小编就为大家分享一篇python实现读Excel写入.txt的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Matplotlib多子图使用一个图例的实现

    Matplotlib多子图使用一个图例的实现

    多子图是Matplotlib中的一个功能,可以在同一图形中创建多个子图,本文主要介绍了Matplotlib多子图使用一个图例的实现,感兴趣的可以了解一下
    2023-08-08
  • Django代码性能优化与Pycharm Profile使用详解

    Django代码性能优化与Pycharm Profile使用详解

    本文通过一个简单的实例一步一步引导读者对其进行全方位的性能优化,这篇文章主要给大家介绍了关于Django代码性能优化与Pycharm Profile使用的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-08-08
  • 解决Python图形界面中设置尺寸的问题

    解决Python图形界面中设置尺寸的问题

    这篇文章主要介绍了解决Python图形界面中设置尺寸的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Pycharm编辑器功能之代码折叠效果的实现代码

    Pycharm编辑器功能之代码折叠效果的实现代码

    这篇文章主要介绍了Pycharm编辑器功能之代码折叠效果的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10

最新评论