2014-11-02 108 views
2

我想通過比較我的字符串中的每個字符與我的「alpha_list」的字符串來創建一個與字符串相關的值列表。這是編碼過程,以便數值可以稍後添加。基於現有的字符串數組創建一個新的數組數組

我不斷從多種不同的方式收到多個錯誤,我試圖做到這一點。

import string 

alpha_list = " ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
ints = "HELLO WORLD" 
myotherlist = [] 

for idx, val in enumerate(ints): 
    myotherlist[idx] = alpha_list.index(val) 

print(myotherlist) 

現在這是我當前的錯誤讀

Traceback (most recent call last): 
    File "C:/Users/Derek/Desktop/Python/test2.py", line 11, in <module> 
    myotherlist[idx] = alpha_list.index(val) 
IndexError: list assignment index out of range 

我很新的蟒蛇,所以如果我想提出一個可笑的明顯錯誤敬請批評。

,我正在尋找應看起來像這樣的打印(myotherlist)輸出:

[8,5,12,12,15,0,23,15,18,12,4]

+0

只是要清楚我想縮短格式,我列出每個單一的字母,並在if和elif語句中指定一個數字 – LBBLITZ54 2014-11-02 22:15:42

回答

4

只需使用追加:

for val in ints: 
    myotherlist.append(alpha_list.index(val)) 
print(myotherlist) 

myotherlist是一個空的列表,所以你不能使用myotherlist[idx]因爲沒有元素0等..訪問

或者只是使用一個list comprehension

my_other_list = [alpha_list.index(val) for val in ints] 

或使用功能的做法地圖:

map(alpha_list.index,ints)) 

兩個輸出:

In [7]: [alpha_list.index(val) for val in ints] 
Out[7]: [8, 5, 12, 12, 15, 0, 23, 15, 18, 12, 4] 

In [8]: map(alpha_list.index,ints) 
Out[8]: [8, 5, 12, 12, 15, 0, 23, 15, 18, 12, 4] 
+0

my_other_list = [在val inint中的[alpha_list.index(val)]是什麼即將去與,非常感謝你!我曾嘗試過這種方法,我甚至認爲我嘗試了你的第一種方法,但我認爲我已經使用()而不是[]再次感謝你! – LBBLITZ54 2014-11-02 22:47:59

+0

no pob,不客氣 – 2014-11-03 10:38:17

0
  1. import string - 不使用那一堆書上說的更好使用內置的str

  2. myotherlist[idx] = alpha_list.index(val)就是爲什麼你會收到錯誤。這是說'去idx索引,並把alpha_list.index(val)那裏,但由於列表是空的,它不能這樣做。

所以,如果你有

for letter in ints: #iterates over the 'HELLO WORLD' string 
    index_to_append = alpha_list.index(letter) 
    myotherlist.append(index_to_append) 

更換

for idx, val in enumerate(ints): 
    myotherlist[idx] = alpha_list.index(val) 

你會得到預期的結果! 如果有什麼不清楚的地方,請告訴我!

+0

它說不要使用字符串模塊? – 2014-11-02 22:25:31

+0

嗯,我不記得名稱(我會說他們否則),但我記得讀到,字符串模塊用於早期版本的Python的一些功能,稍後將被實施爲建立在str的方法。所以沒有真正的理由使用該模塊,並且作爲一個初學者不知道它的差別或缺乏會令人困惑。所以不要使用那個 – SuburbanFilth 2014-11-02 22:38:12

+0

那是不正確的,字符串模塊仍然被使用,並且有很多方法和屬性不包含在str模塊中 – 2014-11-02 22:40:07

相關問題