【发布时间】:2019-03-31 15:13:28
【问题描述】:
我想计算文件中每个单词的个数,我正在尝试编写它 作为一行代码,但我得到一个无效的语法错误,我不明白为什么, 或如何改变它。
我的代码:
def print_words(filename):
my_file = open(filename, 'r')
word_dict = {}
for line in my_file:
line.lower()
words_in_line = line.split(" ")
word_dict[word] += 1 if word_dict.get(word) else word_dict[word] = 0
for word in words_in_line
错误信息:
word_dict[word] += 1 if word_dict.get(word) else word_dict[word] = 0 for word in words_in_line
^
SyntaxError: invalid syntax
我也尝试将它写得有点不同(代码将如下)但仍然得到相同的错误。但是当我删除“= 0”时,语法是好的(当我从原来的一行中删除它时,语法仍然无效)。
my_file = open(filename, 'r')
word_dict = {}
for line in my_file:
line.lower()
words_in_line = line.split(" ")
for word in words_in_line:
word_dict[word] += 1 if word_dict.get(word) else word_dict[word] = 0
【问题讨论】:
-
你让我们猜测错误是什么,在哪里。编辑问题以包含完整的错误消息。
-
赋值不能是表达式的一部分。
-
另外,您在定义
word之前使用word作为索引。 -
这可能是使用
Counter的好时机,正如here 所解释的那样。
标签: python syntax-error