我一直遇到麻烦这个for循环应该迭代并保存一个包含书中所有单词的列表。
我得到的错误是:'int' object is not iterable
。
def create_word_dict ()
word_list = open("mobydick.txt", "r")
all_list = word_list.read()
all_list = all_list.split()
word_list.close()
for index in len(all_list):
all_list[index] = parseString(all_list[index])
return all_list
# Removes punctuation marks from a string
def parseString (st):
s = ""
for ch in st:
if ch.isalpha() or ch.isspace():
s += ch
else:
s += ""
return s #return was outside code block
答案 0 :(得分:2)
我猜你想要
for index in range(len(all_list)):
all_list[index]=parseString(all_list[index])
因为for i in 5:
在python中没有任何意义(因为int不能被迭代),但是i in range(5)
确实是一个有效的语句,因为一个范围可以被迭代...
但是直接迭代对象可能更好
new_list = []
for word in all_list:
new_list.append(parseString(word))
或者甚至更好地做一个列表理解
new_list = [parseString(word) for word in all_list]
答案 1 :(得分:0)
使用Python的一些内置方法可以加快速度:
var model = new Model();
var promise = model.$save();
// when resolved
promise.$$state.value === model;
为了便于比较,在我的机器上,它在0.11秒内加载了Gutenberg版本的Moby Dick(220231字)中的单词。