如何找到一个字符串的字母与另一个字符串的字母匹配?

2024-10-04 01:36:38 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,alpha和comp是我们正在使用的两个字符串:

alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
numhelp  12345678901234567890123456
comp = "this is an example"

如何将compalpha进行比较,从而得到一个新的列表index = [],其中包含每个字母在字符串中的编号或索引。你知道吗

所以comp的索引现在看起来像[20, 8, 9, 19....]忽略空格

那么我是否可以在另一个字母列表中使用这些索引呢?你知道吗

key = "XPMGTDHLYONZBWEARKJUFSCIQV"
numhlp 12345678901234567890123456

最后一个字符串如下:ULYJ....

然后我们需要做的就是从空间位置列表中添加空间,我很确定我可以创建。你知道吗

抱歉,如果解释得不好,希望你们都能理解。提前谢谢你的帮助。你知道吗


Tags: 字符串alphaan列表indexisexample字母
3条回答

看起来你只是想做一个替换密码(http://en.wikipedia.org/wiki/Substitution_cipher)。如果这就是你正在做的,那么找到索引可能比你真正需要做的要复杂得多。创建一个从一个字母到另一个字母的映射怎么样。然后,您可以运行字符串中的每个字母来对查找进行编码。如果找不到,你甚至可以放在一个空格里。你知道吗

alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
key = "XPMGTDHLYONZBWEARKJUFSCIQV"
comp = "this is an example"

translate = dict(zip(alpha, key)) #dictionary to translate from alpha to key
encoded = [translate.get(c.upper(), " ") for c in comp] # use the get to turn anything not matched into a space
print ''.join(encoded)

>>>ULYJ YJ XW TIXBAZT

字符串模块正是为此提供了有用的功能。你知道吗

import string

alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
key = "XPMGTDHLYONZBWEARKJUFSCIQV"
comp = "this is an example"

tr = string.maketrans(alpha, key)
print string.translate(comp.upper(), tr)
# -> ULYJ YJ XW TIXBAZT

使用dict获取索引和密钥传输:

comp=“这是一个例子”

key = "XPMGTDHLYONZBWEARKJUFSCIQV' '"
key_dict = {k:v for k,v in enumerate(key,1)}
index_dict = {k:v for v,k in enumerate("ABCDEFGHIJKLMNOPQRSTUVWXYZ' '",1)}

comp_ind = [index_dict[ch.upper()] for ch in comp if ch.upper() in index_dict]
print("".join(key_dict[k] for k in comp_ind))
ULYJ YJ XW TIXBAZT

相关问题 更多 >