2016-03-07 93 views
1

我對Python非常陌生,目前我正在開發一個用於加密和解密字符串的程序。作爲它的一部分,我需要將字符串的單個字母添加到空列表中;例如,字符串「hello」將進入一個名單列表,像這樣:Python - 列表索引超出範圍For循環

['h','e','l','l','o'] 

是給我這個錯誤代碼的部分可以在下面找到。謝謝。

emptyList=[] 
message=input("What Would You Like To Encrypt?\n") 

messageLength=len(message) 
for count in range(0,messageLength): 
     emptyList=[] 
     emptyList[count].append(message[count]) 
+3

'的emptyList [0]'不'的時候是emptyList''[]'存在。你可能想'empyList.append(message [count])'。也就是說,執行'emptyList = list(message)'可能會更容易 – inspectorG4dget

回答

4

你試圖解決指數在一個空列表:

>>> lst = [] 
>>> lst[0] 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
IndexError: list index out of range 
>>> lst[0] = 1 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
IndexError: list assignment index out of range 

如果你想添加元素添加到列表中,只要使用list.append()直接在列表對象本身創造更多的指數;不創造新的空列出了每個時間:

emptyList=[] 
messageLength=len(message) 
for count in range(0,messageLength): 
    emptyList.append(message[count]) 

不是說你需要這個精心設計的,以下就足夠了:

emptyList = list(message) 

list()採取任何迭代並增加了可迭代的所有元素到一個列表。由於字符串是可迭代的,生產在字符串中的所有字符,在一根繩子上調用list()創建這些字符的列表:

>>> list('hello') 
['h', 'e', 'l', 'l', 'o'] 
2

基本上你只想從輸入,然後輸出列表讀取

Python 2.7版

message=raw_input("What Would You Like To Encrypt?\n") 
print list(message) 

的Python 3.X

message=input("What Would You Like To Encrypt?\n") 
print(list(message)) 

輸出

如果你輸入你好

['H', 'e', 'l', 'l', 'o']