<p>其他答案也适用,不过您可能需要考虑使用<code>dict</code>来提高速度。python字典是一个键值对表(hash表是技术性的)。表使用键查找值。当您在<code>dict</code>中搜索某个元素时,is有一个恒定的查找时间O(1),这意味着<code>dict</code>不会通过自身搜索该元素。它确切地知道它在哪里(如果它有)。你知道吗</p>
<p><strong>例如:</strong></p>
<pre><code>d = {
2: 'A',
5: 3
}
print(d[2]) # This will print the letter A
print(d[5]) # This will print the number 3
</code></pre>
<p>您的列表:</p>
<pre><code>list1 = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','.','1','2','3','4','5','6','7','8','9','0']
list2 = ['4','R','5','G','Z','3','2','D','A','E','X','Y','U','I','6','W','7','O','V','8','F','Q','0','L','J','.','H','9','C','B','N','S','P','M','1','T','K']
</code></pre>
<p>变成<code>dict</code>:</p>
<pre><code># The following will zip your two lists together into a dictionary
# list1 will be the keys, and list2 will be the values.
encription_dict = {list1[i]: list2[i] for i in range(len(list1))}
</code></pre>
<p>然后我们可以加密:</p>
<pre><code># Get the user input
strInput = input("Type the message you would like to Encrypt ").upper()
# The following is list comprehension
new_str = [(key_val[char] if char != ' ' else ' ') for char in strInput]
# That one line was equivalent to:
# new_str = []
# for char in strInput:
# if char != ' ': # if it is not a space
# new_str.append(key_val[char]) # Add the encrypted char for this char
# else:
# new_str.append(' ')
# Turn the list into a single str.
new_str = ''.join(new_str)
print(new_str)
</code></pre>
<p><strong>测试:</strong><br/>
输入:<code>Test 2</code><br/>
输出:<code>8ZV8 C</code></p>