在For循环中为初始化变量分配函数?

时间:2017-02-22 17:44:21

标签: python-2.7 for-loop

关于在for循环中初始化的变量的问题:

设置:

from urllib import urlopen

WORD_URL = "http://learncodethehardway.org/words.txt"

WORDS = []

我的问题是,当将网址中的单词加载到空列表WORDS中时,为什么会这样做:

for word in urlopen(WORD_URL):
    WORDS.append(word.strip())

虽然这不是?

for word.strip() in urlopen(WORD_URL):
    WORDS.append(word)

根据我的理解,只要所述变量的类型支持该函数,就可以在for循环中对初始化变量调用函数。

在这种情况下,初始化变量的类型是一个末尾有换行符的字符串,所以我认为word.strip()可以工作。相反,我收到以下错误:

File "<stdin>", line 1
SyntaxError: can't assign to function call

这是为什么?

1 个答案:

答案 0 :(得分:0)

我现在明白了;我试图做的不是因为:

for word in urlopen(WORD_URL):

是一个设计用于迭代某个对象的表达式,因此在新创建的变量字上调用strip()方法在这一点上没有意义。

显而易见的答案是简单地在for循环块内部的变量字上调用strip()方法。

@Zero Piraeus感谢您的耐心。