Python-求和数字列表



在我的程序中,用户输入一些加密文本,例如,加密文本为:,@AK ,=PL /ADD x= {F;JQHL=< ghi p_

这是一个非常基本的程序,在任何人说它的低级别加密之前。。我知道!

不管怎样它将加密文本转换为ascii代码,因此看起来像这样:

print(convert)
[111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68]

不过,我需要一些帮助,我需要从27中减去列表中的每个数字,然后如果结果小于33加94,然后打印数字,就像刚刚完成的总和一样。我该怎么做?

使用列表理解,它更简单、整洁。你可以这样做,但我建议你读一些关于它的东西来了解发生了什么

convert = [111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68]
convert = [x - 27 if x - 27 >= 33 else x - 27 + 94 for x in convert]
print(convert)

结果:[84,104,105,115,99,84,101,120,116,99,87,105,108,108,99,66,101,99,69,110,99,114,121,112,116,101,100,99,49,50,51,99,58,41]

留下了x-27+94让你理解我做了什么。

点击此处查看列表理解:列表理解

map一个对列表执行所需操作的函数:

94-27=67->如果条件为真,你必须求和。。。

>>> lst = [111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68]
>>>>print map(lambda x: x + 67 if x-27 < 33 else x, lst)
[205, 131, 132, 142, 126, 205, 128, 147, 143, 126, 208, 132, 135, 135, 126, 187, 128, 126, 190, 137, 220, 141, 148, 139, 143, 128, 127, 126, 170, 171, 172, 126, 179, 162]
    list = [111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68]
    for n in range(len(list)):
        list[n] -= 27
        if(list[n] < 33):
            list[n] += 94
    print(list)

这应该完成的工作

IIUC您可以尝试,其中l是您列出的:

l = [111, 37, 38, 48, 32, 111, 34, 53, 49, 32, 114, 38, 41, 41, 32, 93, 34, 32, 96, 43, 126, 47, 54, 45, 49, 34, 33, 32, 76, 77, 78, 32, 85, 68]
l1 = [i + 67 if (i - 27) < 33 else i - 27 for i in l]
In [8]: l1
Out[8]: 
[84, 104, 105, 115, 99, 84, 101, 120, 116, 99, 87, 105, 108, 108, 99, 66, 101, 99, 69, 110, 99, 114, 121, 112, 116, 101, 100, 99, 49, 50, 51, 99, 58, 41]

最新更新