我试图挽救的输出存储的for循环输出我的for循环每次迭代...例如,这里是我的代码:每次迭代
def encrypt(key):
for char in (key):
val = (ord(char)) - (96)
例如,如果有人进入“笑”通过翻译我的计划产出...
encrypt("lol")
12
15
12
在这个例子中,我需要在内存中存储12,15,12用于其他功能...谁能帮助?
我试图挽救的输出存储的for循环输出我的for循环每次迭代...例如,这里是我的代码:每次迭代
def encrypt(key):
for char in (key):
val = (ord(char)) - (96)
例如,如果有人进入“笑”通过翻译我的计划产出...
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
有很多的,你可以用它来做到这一点不同的方法,但在Python可能是最好的方法是使用一个列表理解,这样的:
def encrypt(key):
return [ (ord(char)-96) for char in key ]
见http://docs.python.org/tutorial/datastructures.html#list-comprehensions
然后encrypt('lol')
将返回列表[12, 15, 12]
。
列表理解是否有任何效率增益,还是完全审美? – 2011-11-12 11:42:25
这个作品也很愉快!感谢球员们,不知道必须决定使用哪种方法,迈克尔或你的方法。 – user1043059
@Michael。我不知道。我自己对Python很新。我似乎回想起我旅行的某个地方,我看到有一个*轻微的*性能增益,但现在我找不到它了,所以不要听我说,我不知道它们是如何实现的。 – tjm
哇,这正是我想要的,非常感谢你,我没有考虑使用列表,因为我们刚刚在课堂上学到了它们...... – user1043059
下面的列表理解方法也不错,但我不真的认为使用它有任何性能收益。这是迄今为止最容易理解的方法......正如链接的“列表理解”文章所提到的,列表推导专门用于map()或可能使用lambda函数以简化这些的情况。 – 2011-11-12 11:45:15
如果有必要在内存中存储多个这样的内容,那么在字典中使temp成为一个值,用lol作为键可能是合适的。 – Jake