0

我在用 python 编写一个简单的加密/解密程序时遇到了一些问题,只涉及用另一个数组替换一个数组的元素。我有两个数组,需要加密的数组和第一个元素相当于 a 和最后一个元素相当于 z 的密钥。

我假设我需要在第一个数组 = key[0] 中创建 a 的所有实例,依此类推,但我不知道如何编写一些代码。一些提示或指导将不胜感激。

请注意,我不能导入任何库,也没有教过我字典。

跟进问题,但相关问题。如何替换列表中具有相同值的所有元素。即如何将文本列表中的所有“a”值替换为键列表的第一个值?

for c in text:        
    if c == 'a':
        c = key[0]            

给我一个错误:“函数”对象不可下标

4

2 回答 2

0

首先将键转换为字典,然后您可以使用简单的列表替换

key = {chr(ord('a')+i): e for i, e in enumerate(key)}
encrypted = [key[e] for e in unencrypted]

或者

encrypted = [key[ord(e) - ord('a')] for e in unencrypted]
于 2012-05-12T03:42:30.500 回答
0

我认为更简单的方法是:

def encrypt(iterable,encryption_dictionary):
    itertype = type(iterable)
    return itertype(''.join((encryption_dictionary[i] for i in iterable)))

要创建加密字典,您可以使用

{key1:mappedvalue1,key2:mappedvalue2}

以此类推, : 表示对,而 "," 在对之间进行分隔。

于 2012-05-12T05:39:38.503 回答