Python 2.7 在python中如何将正整数列表转换为负整数?

Python 2.7 在python中如何将正整数列表转换为负整数?,python-2.7,Python 2.7,好的,在前言中,我正在尝试编写一个加密程序,它接受一个字符串输入,使用ord()函数将每个字符转换成一个整数,然后使用伪随机生成的数字序列将其移位。它本质上是一个维格纳密码程序,我已经完全掌握了它。我只是在使用解密函数时遇到了问题,因为我不知道如何从加密的消息中减去密钥以便对其进行解密 def input1(): mes = raw_input('> ').upper() shiftl = [] while len(mes) > len(shiftl):

好的,在前言中,我正在尝试编写一个加密程序,它接受一个字符串输入,使用ord()函数将每个字符转换成一个整数,然后使用伪随机生成的数字序列将其移位。它本质上是一个维格纳密码程序,我已经完全掌握了它。我只是在使用解密函数时遇到了问题,因为我不知道如何从加密的消息中减去密钥以便对其进行解密

def input1():
    mes = raw_input('> ').upper()
    shiftl = []
    while len(mes) > len(shiftl):
        shiftl.append(random.randint(1,26))
    return mes, shiftl

def encrypt(x,y):
    h = []
    for item in x:
        h.append(ord(item) - 65)
    e = [sum(i) for i in zip(h,y)]
    return e

def decrypt(e, y):
    u = [sum(i) for i in zip(e,-(y))]
    d = []
    for item in u:
        d.append(chr(item + 65))
    return d
这是我需要帮助的电话

u = [sum(i) for i in zip(e,-(y))]

我试图简单地在列表前面放一个-,但一元运算符不处理列表。那么,对于我来说,从加密邮件中减去此列表的最佳方法是什么呢?

很可能我没有得到您想要的内容,但对于另一种情况:

def negList(list):
    for(n in list):
        n = -n
    return list

list = negList(list)

抱歉,如果我弄错了。

如果您有一个列表,并且希望更改内容,请使用列表理解和切片分配:

a = [1, 3, 5]
a[:] = [-1*x for x in a]
print a
其结果将是:

[-1, -3, -5]

你可以从零减去正数得到一个负数<代码>-3==0-3这绝对是我想要的,但它没有按预期工作。编写时,它返回我输入的列表,没有任何更改。我将n=-n定义为一个单独的函数,并使用.append在for循环中创建一个列表,但我得到一个满是“None”的列表