首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数字解密

数字解密
EN

Stack Overflow用户
提问于 2020-02-08 08:15:49
回答 2查看 335关注 0票数 0

考虑到以下代码:

代码语言:javascript
复制
list = [1, 0 ,3]

def decrypt(text, alphabet):
    decrypt_final = ""

    for j in alphabet:
        aindex = alphabet.index(j)
        for i in list:
            if aindex == i:
                decrypt_final = decrypt_final + str(j)

    print(decrypt_final)

decrypt("103", "abcde")

当代码运行时,结果是"abd",这不是我想要的。我试图根据"abcde"的字母表范围解密数字103,如果输入是"103",正确的结果应该是"103"

我上面的代码想要做的是查看列表(列表中的数字来自另一个函数,我并没有将其简化),如果列表号与字母表的索引相匹配,则输出字母表。不幸的是,输出顺序是错误的。

会感谢你的指导。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-08 08:24:45

我想以下几点应该能用

代码语言:javascript
复制
def decrypt(text, alphabet):
    decrypt_final = ""
    # convert text to list of indices
    str_to_int = [int(i) for i in text]
    for j in str_to_int:
        decrypt_final += alphabet[j]

    print(decrypt_final)

decrypt("103", "abcde")

您只需将文本("103")转换为索引列表。

票数 1
EN

Stack Overflow用户

发布于 2020-02-08 08:29:09

你可以试试这个。

您可以通过索引来提取所需的内容。您所需要做的就是将字符串103转换为整数。可以通过执行int(str_num)将字符串数字转换为整数。一旦这些是整数,它们就是要提取的字母字符串的索引。以上所有步骤都可以浓缩成下面的代码。

'delimiter'.join(iterable)用分隔符连接可迭代元素中的所有元素。

代码语言:javascript
复制
def decrypt(txt,alphabets):
      cipher_text=[alphabets[int(i)] for i in txt]
      return ''.join(cipher_text)

代码语言:javascript
复制
decrypt('103','abcde')
#'bad'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60125074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档