Python - 汇总数字列表

时间:2015-12-05 20:35:57

标签: python list

在我的程序中,用户输入一些加密文本,对于我的示例,加密文本为:,@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然后打印数字,因为它们只是用这个数字完成我怎么做?< / p>

4 个答案:

答案 0 :(得分:1)

使用列表理解,它更简单,更整洁。你可以这样做,但我建议你阅读一些有关它的内容,以了解发生了什么。

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,让你明白我做了什么。

在这里查看列表理解: list comprehension

答案 1 :(得分:0)

    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)

这应该做的工作

答案 2 :(得分:0)

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

94 -27 = 67 - &gt;如果条件成立,你必须总结一下......

>>> 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]

答案 3 :(得分:0)

IIUC你可以试试,你在哪里列出:

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]