有两个列表 - 对于列表 1 中的任何空白,将元素在列表 2 中向下移动以匹配而不删除元素?
Have two lists - for any whitespace in list 1, move element down in list 2 to match without removing element?
需要 Vigenere 密码的帮助以从关键字生成密钥,希望在循环旋转后非常简单地执行此操作以获得与消息相同的 len 的关键字:
message = "i love my horse"
keyword = "mare"
list1 = ['i', ' ', 'l', 'o', 'v', 'e', ' ', 'm', 'y', ' ', 'h', 'o', 'r', 's', 'e']
list2 = ['m', 'a', 'r', 'e', 'm', 'a', 'r', 'e', 'm', 'a', 'r', 'e', 'm', 'a', 'r']
如何在不删除“a”的情况下通过将列表 2 的索引 1 向下移动来匹配列表 1 的间距?换句话说,如何在不删除元素本身的情况下基于列表 1 将列表 2 的每个元素“正确”推入?
感谢任何帮助!非常感谢!
您可以使用itertools.cycle
在列表理解的帮助下重复生成关键字的字母:
message = "i love my horse"
keyword = "mare"
from itertools import cycle
c = cycle(keyword)
list2 = [' ' if l == ' ' else next(c) for l in message]
输出:
['m', ' ', 'a', 'r', 'e', 'm', ' ', 'a', 'r', ' ', 'e', 'm', 'a', 'r', 'e']
需要 Vigenere 密码的帮助以从关键字生成密钥,希望在循环旋转后非常简单地执行此操作以获得与消息相同的 len 的关键字:
message = "i love my horse"
keyword = "mare"
list1 = ['i', ' ', 'l', 'o', 'v', 'e', ' ', 'm', 'y', ' ', 'h', 'o', 'r', 's', 'e']
list2 = ['m', 'a', 'r', 'e', 'm', 'a', 'r', 'e', 'm', 'a', 'r', 'e', 'm', 'a', 'r']
如何在不删除“a”的情况下通过将列表 2 的索引 1 向下移动来匹配列表 1 的间距?换句话说,如何在不删除元素本身的情况下基于列表 1 将列表 2 的每个元素“正确”推入?
感谢任何帮助!非常感谢!
您可以使用itertools.cycle
在列表理解的帮助下重复生成关键字的字母:
message = "i love my horse"
keyword = "mare"
from itertools import cycle
c = cycle(keyword)
list2 = [' ' if l == ' ' else next(c) for l in message]
输出:
['m', ' ', 'a', 'r', 'e', 'm', ' ', 'a', 'r', ' ', 'e', 'm', 'a', 'r', 'e']