在这里,我采用一个字符串并对其进行迭代以检索各个字母。获得它们之后,我将其通过字典运行,该字典将字母替换为数值。在代码的最后一部分,我试图将数值放入一个列表中,诸如此类[45, 67, 86, 79]
,依此类推。
pad_length = int(raw_input("How long will your one time pad be?"))
otp = one_time_pad_generator(pad_length)
otp = otp.upper()
print otp
# Defining One Time Pad
base_dict = {"A":1, "B":2, "C":3, "D":4, "E":5, "F":6, "G":7, "H":8, "I":9, "J":10, "K":11, "L":12, "M":13,
"N":14, "O":15, "P":16, "Q":17, "R":18, "S":19, "T":20, "U":21, "V":22, "W":23, "X":24, "Y":25, "Z":26}
for i in otp:
important_list = [base_dict[i]]
(一个时间垫生成器仅获取一个数字并输出那么多随机生成的字母)
但是我得到的不是单个列表中包含多个整数,而是
[45] [67] [86] [79]
每个数字都用方括号括起来,并垂直打印。如何将它们全部放入同一列表?
您不是在建立一个列表,而是在不断用新列表替换列表:
for i in otp:
important_list = [base_dict[i]]
在此,[...]
语法仅使用一个元素创建一个新的列表对象。
您可以只创建一次对象,将其清空,然后用于list.append()
添加元素:
important_list = []
for i in otp:
important_list.append(base_dict[i])
或使用列表理解:
important_list = [base_dict[i] for i in otp]
字典在这里有点过头了。您可以ord()
用来获取ASCII码点,然后减去64:
important_list = [ord(i) - 64 for i in otp]
因为ord('A')
是65。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句