在Python中添加列表/字符串ord()值

时间:2014-11-08 15:52:42

标签: python

基本上,我想将两个列表一起添加,列表由字母,字符串组成。 我想将这些列表添加到一起,但它并不像您想象的那么简单。 我想在一个列表中将每个字母的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')

1 个答案:

答案 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会将结果映射到有效的字母字符。