我試圖挽救的輸出存儲的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