2015-04-24 55 views
1

我試圖找出如何產生一個列表(每個字符串),表示每個字符串中的字符的ASCII值列表。Python:將列表中的字符串值更改爲ascii值使用追加

EG。改變「你好」,「世界」,這樣它看起來像:

[[104, 101, 108, 108, 111], [119, 111, 114, 108, 100]] 

繼承人到目前爲止我的代碼:

words = ["hello", "world"] 
ascii = [] 
for word in words: 
    ascii_word = [] 
    for char in word: 
     ascii_word.append(ord(char)) 
    ascii.append(ord(char)) 

print ascii_word, ascii 

我知道它不工作,但我很努力,使其正常運行。任何幫助將非常感激。三江源

回答

1

你接近:

words = ["hello", "world"] 
ascii = [] 
for word in words: 
    ascii_word = [] 
    for char in word: 
     ascii_word.append(ord(char)) 
    ascii.append(ascii_word) # Change this line 

print ascii # and only print this. 

但看看list comprehensions和@ Shashank的代碼。

1

一種方法是使用嵌套list comprehension

>>> [[ord(c) for c in w] for w in ['hello', 'world']] 
[[104, 101, 108, 108, 111], [119, 111, 114, 108, 100]] 

這是簡單地寫了下面的代碼的簡潔的方式:

outerlist = [] 
for w in ['hello', 'world']: 
    innerlist = [] 
    for c in w: 
     innerlist.append(ord(c)) 
    outerlist.append(innerlist) 
+2

你應該解釋爲什麼這樣做,而不僅僅是給他代碼,這將幫助他學習。 – Loocid