2011-11-12 220 views
0

我试图挽救的输出存储的for循环输出我的for循环每次迭代...例如,这里是我的代码:每次迭代

def encrypt(key): 
for char in (key): 
    val = (ord(char)) - (96) 

例如,如果有人进入“笑”通过翻译我的计划产出...

encrypt("lol") 
12 
15 
12 

在这个例子中,我需要在内存中存储12,15,12用于其他功能...谁能帮助?

回答

3

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

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

哇,这正是我想要的,非常感谢你,我没有考虑使用列表,因为我们刚刚在课堂上学到了它们...... – user1043059

+0

下面的列表理解方法也不错,但我不真的认为使用它有任何性能收益。这是迄今为止最容易理解的方法......正如链接的“列表理解”文章所提到的,列表推导专门用于map()或可能使用lambda函数以简化这些的情况。 – 2011-11-12 11:45:15

+0

如果有必要在内存中存储多个这样的内容,那么在字典中使temp成为一个值,用lol作为键可能是合适的。 – Jake

2

有很多的,你可以用它来做到这一点不同的方法,但在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]

+0

列表理解是否有任何效率增益,还是完全审美? – 2011-11-12 11:42:25

+0

这个作品也很愉快!感谢球员们,不知道必须决定使用哪种方法,迈克尔或你的方法。 – user1043059

+0

@Michael。我不知道。我自己对Python很新。我似乎回想起我旅行的某个地方,我看到有一个*轻微的*性能增益,但现在我找不到它了,所以不要听我说,我不知道它们是如何实现的。 – tjm