Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在每次迭代中存储for循环的输出_Python - Fatal编程技术网

Python 在每次迭代中存储for循环的输出

Python 在每次迭代中存储for循环的输出,python,Python,我试图为每次迭代保存for循环的输出…例如,下面是我的代码: def encrypt(key): for char in (key): val = (ord(char)) - (96) 例如,如果有人通过解释器输入“lol”,我的程序输出 encrypt("lol") 12 15 12 在这个例子中,我需要将12,15,12存储在内存中,以便在另一个函数中使用。。。有人能帮忙吗?将其保存到列表并返回列表,而不是保存为某个临时值val def encrypt(key): temp

我试图为每次迭代保存for循环的输出…例如,下面是我的代码:

def encrypt(key):
 for char in (key):
  val = (ord(char)) - (96)
例如,如果有人通过解释器输入“lol”,我的程序输出

encrypt("lol")
12
15
12

在这个例子中,我需要将12,15,12存储在内存中,以便在另一个函数中使用。。。有人能帮忙吗?

将其保存到列表并返回列表,而不是保存为某个临时值val

def encrypt(key):
    temp = list()
    for char in(key):
        temp.append((ord(char))-96)
    return temp

将其保存到列表并返回列表,而不是保存为某个临时值val

def encrypt(key):
    temp = list()
    for char in(key):
        temp.append((ord(char))-96)
    return temp

可以使用多种不同的方法来实现这一点,但在Python中,最好的方法可能是使用列表理解,如下所示:

def encrypt(key):
    return [ (ord(char)-96) for char in key ]


encrypt('lol')
然后将返回列表
[12,15,12]
可以使用许多不同的方法来执行此操作,但在Python中,最好的方法可能是使用列表理解,如下所示:

def encrypt(key):
    return [ (ord(char)-96) for char in key ]


encrypt('lol')
然后将返回列表
[12,15,12]

列表理解是否有任何效率提高,或者是否完全美观?这也很有效!谢谢你们,我猜我得决定用哪种方法,迈克尔的还是你们的。@Michael。我真的不知道。我自己对Python还是相当陌生的。我似乎记得在旅行中的某个地方,我读到性能略有提高,但我现在找不到,所以不要相信我的话,我不知道它们是如何实现的。“列表理解在这里表现得更好,因为不需要从列表中加载append属性(循环程序,字节码28)并将其作为函数调用(循环程序,字节码38)。相反,在理解中,会生成一个专门的列表\附加字节码,以便快速附加到结果列表(理解程序,字节码33)。“---看起来列表理解稍微更有效。我撤销了我关于没有性能提升的评论。列表理解是否有效率提升,或者完全是审美的?这也很好用!谢谢你们,我猜我得决定用哪种方法,迈克尔的还是你们的。@Michael。我真的不知道。我自己对Python还是相当陌生的。我似乎记得在旅行中的某个地方,我读到性能略有提高,但我现在找不到,所以不要相信我的话,我不知道它们是如何实现的。“列表理解在这里表现得更好,因为不需要从列表中加载append属性(循环程序,字节码28)并将其作为函数调用(循环程序,字节码38)。相反,在理解中,会生成一个专门的列表\附加字节码,以便快速附加到结果列表(理解程序,字节码33)。“---看起来列表理解稍微更有效。我撤销了我关于没有性能提升的评论。哇,这正是我想要的,非常感谢,我没有考虑使用列表,因为我们刚刚在课堂上学习了它们……下面的列表理解方法也不错,但我真的认为使用它不会带来任何性能提升。这是迄今为止最容易理解的方法。。。正如链接的“列表理解”文章所提到的,列表理解专门用于WARE map()的情况,或者可以使用lambda函数来简化这些情况。如果需要在内存中存储多个列表理解,则将temp作为字典中的值,用lol作为键可能是合适的。实际上我并不是在寻找这个,但空列表和附加让我知道了我在寻找什么。谢谢哇,这正是我想要的,非常感谢,我没有考虑使用列表,因为我们刚刚在课堂上学习了它们……下面的列表理解方法也不错,但我真的认为使用它不会带来任何性能提升。这是迄今为止最容易理解的方法。。。正如链接的“列表理解”文章所提到的,列表理解专门用于WARE map()的情况,或者可以使用lambda函数来简化这些情况。如果需要在内存中存储多个列表理解,则将temp作为字典中的值,用lol作为键可能是合适的。实际上我并不是在寻找这个,但空列表和附加让我知道了我在寻找什么。非常感谢。