Python:数字之和

时间:2015-12-05 19:00:12

标签: python list sum

在我的课程中,我有这个:

decrypt=input("Please enter the key you used to encrypt the above text: ")
key="".join(map(str,[ord(d) for d in decrypt]))
print(key)

根据输入打印,但例如我的将是:

1207356100604112383

但我需要这样:

[120, 73, 56, 100, 60, 41, 123, 83]

我怎么能这样呢?

一旦完成,我需要程序将它们加在一起,将结果除以8,向下舍入为整数,然后减去32。

1 个答案:

答案 0 :(得分:2)

不要join。使用map

打印list对象
>>> decrypt=input("Please enter the key you used to encrypt the above text: ")
Please enter the key you used to encrypt the above text: hello
>>> key=(map(str,[ord(d) for d in decrypt]))
>>> print(list(map(int,key)))
[104, 101, 108, 108, 111]

更好的方法是将列表理解保持为

>>> key = [ord(d) for d in decrypt]
>>> print(key)
[104, 101, 108, 108, 111]

通过这种方式,您无需使用任何mapstr来电等。

为您的例子

>>> decrypt=input("Please enter the key you used to encrypt the above text: ")
Please enter the key you used to encrypt the above text: xI8d<){S
>>> key = [ord(d) for d in decrypt]
>>> key
[120, 73, 56, 100, 60, 41, 123, 83]

或者如果你坚持map

>>> key = map(ord,decrypt)
>>> print(list(key))
[120, 73, 56, 100, 60, 41, 123, 83]