共计 1452 个字符,预计需要花费 4 分钟才能阅读完成。
导读 | 这篇文章主要介绍了 python 实现两字符串映射方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教 |
python 两字符串映射
题目:
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
正文完
星哥玩云-微信公众号