Python - 在For循环中列出索引超出范围

时间:2016-03-07 16:48:31

标签: python string list

我是python的新手,我正在开发一个可以加密和解密字符串的程序。作为其中的一部分,我需要将字符串的各个字母添加到空列表中;例如,字符串'hello'将被输入到列表中,如下所示:

['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])

2 个答案:

答案 0 :(得分: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()接受任何迭代,并将该iterable的所有元素添加到列表中。由于字符串是可迭代的,因此产生该字符串中的所有字符,在字符串上调用list()会创建这些字符的列表:

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

答案 1 :(得分: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))

输出

如果您输入Hello

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