基本上,我想将两个列表一起添加,列表由字母,字符串组成。 我想将这些列表添加到一起,但它并不像您想象的那么简单。 我想在一个列表中将每个字母的VALUE添加到另一个列表中每个字母的VALUE中,按我的意思添加值:
ord('a') + ord('b')
不:
'a' + 'b'
我将复制粘贴下面的代码供所有人查看,我的代码在执行时会显示输出。
import itertools
from itertools import cycle
uinput= input("Enter a keyword: ")
word = cycle(uinput)
uinput2= input("Enter a message to encrypt: ")
message = (uinput2)
rkey =(''.join([next(word) for c in message]))
rkeylist = list(rkey)
mlist= list(message)
print(rkeylist)
print(mlist)
encoded1 = [rkeylist[i]+mlist[i] for i in range(len(rkeylist))]
print(encoded1)
输出:
Enter a keyword: keyword
Enter a message to encrypt: Hello, Hello!
['k', 'e', 'y', 'w', 'o', 'r', 'd', 'k', 'e', 'y', 'w', 'o', 'r']
['H', 'e', 'l', 'l', 'o', ',', ' ', 'H', 'e', 'l', 'l', 'o', '!']
['kH', 'ee', 'yl', 'wl', 'oo', 'r,', 'd ', 'kH', 'ee', 'yl', 'wl', 'oo', 'r!']
>>>
正如您所看到的,列表已经添加在一起,但不是值,只是字母,所以就好像我在做:
'a' + 'b'
而不是我想要的代码:
ord('a') + ord('b')
答案 0 :(得分:0)
我认为你要么在寻找:
>>> uinput=['k', 'e', 'y', 'w', 'o', 'r', 'd', 'k', 'e', 'y', 'w', 'o', 'r']
>>> uinput2=['H', 'e', 'l', 'l', 'o', ',', ' ', 'H', 'e', 'l', 'l', 'o', '!']
>>> [ord(i)+ord(j) for i,j in zip(uinput,uinput2)]
[179, 202, 229, 227, 222, 158, 132, 179, 202, 229, 227, 222, 147]
或:
>>> [chr((ord(i)+ord(j))%26+97) for i,j in zip(uinput,uinput2)]
['x', 'u', 'v', 't', 'o', 'c', 'c', 'x', 'u', 'v', 't', 'o', 'r']
或:
>>> "".join([chr((ord(i)+ord(j))%26+97) for i,j in zip(uinput,uinput2)])
'xuvtoccxuvtor'
请注意,%26+97
会将结果映射到有效的字母字符。