在我正在写一个程序来创建一个字符列表中的单词列表,我得到一个“列表索引超出范围”异常。为什么我不能在Python的空列表中追加一个字符?
def getlist(filename):
f = open('alice.txt','r')
charlist = f.read()
wordlist = []
done = False
while(not done):
j = 0
for i in range(0,len(charlist)):
if charlist[i] != ' ' and charlist[i] != '\n':
wordlist[j] += charlist[i]
else: j+= 1
done = i == len(charlist)-1
return wordlist
于是我开始用列表是如何工作的玩耍,结果发现:
list = ['cars']
list[0]+= '!'
给list = ['cars!']
然而,随着:
list = []
list[0]+= '!'
我得到一个出来的边界错误。为什么它不这样做似乎合乎逻辑:list= ['!']
?我该如何解决这个问题?如果我必须用某些东西进行初始化,我将如何知道列表所需的大小?有没有更好的,更传统的方法来做我想做的事情?
想要得到你想要的东西的简单方法是'wordlist = charlist.split()'。 –
追加是你正在为之工作。然而你真正要问的是为什么'!'当列表中有内容而不是列表中的列表时,将其“列入”列表以及空列表。那么在一个你有汽车的话。所以当你说list [0]时,你实际上并不是要求返回列表,而是字符串'cars',所以你要添加“!”到它。如果你要求列表[0]没有任何内容,列表中没有任何内容。这就是为什么你看到边界错误。 – jwillis0720