-1

我有一个看起来像这样的列表:

foo = ["z", "q", "t", "a", "p", "m", "n", "b", "c", "w", "l", "d", "f", "h",
       "y", "e", "j", "k", "g", "i", "o", "r", "u", "s", "v", "x"]

我有另一个看起来像这样的列表:

bar = ["h", "e", "l", "l", "o", "m", "y", "n", "a", "m", "e", "i", "s", "r",
       "e", "a", "l", "l", "y", "l", "o", "n", "g", "a", "n", "d"]

我想做的是使用 foo 的第一个元素,并用它替换 bar 的第一个元素,这样 foo 的第一个元素现在总是值得"h"的,所以如果"h"再次出现在 bar 中,"z"(第一个元素foo) 被自动放入。 然后将 foo 的第二个元素替换为 bar 的第二个元素(除非它是"h"),然后第二个元素变为"e",依此类推,直到整个或 bar 已使用 foo 对字母进行加密。然后打印新栏,但字母从加密过程中更改。

4

2 回答 2

2

其实很简单:

new_string = ''

for every letter in your string:
  new_string = new_string + bar[index of the "letter" in foo]

我会留给你找出合适的 Python 函数,因为你会从学习如何自己做这件事中受益。

于 2012-05-06T08:49:37.883 回答
0

为了与 Blender 的方法保持一致,这是另一种方法。

new_string = ''
cipher = dict(zip(foo,bar))
for every_letter in your_string: 
    # use more python magic here 

如果你打算使用 python,你应该了解dict.

于 2012-05-06T09:00:19.620 回答