Python for循环,遍历字符串:'int'对象不可迭代

时间:2016-02-12 04:20:04

标签: python

我一直遇到麻烦这个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

2 个答案:

答案 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字)中的单词。