为什么for循环中的这个语法无效?

时间:2018-05-20 08:10:16

标签: python

我正在尝试使用以下代码并收到错误:

def preprocess(s):
    return (word: True for word in s.lower().split())
s1 = 'This is a book'
text = preprocess(s1)

然后出现错误

return (word: True for word in s.lower().split()) 

语法无效。我无法找到错误的来源。

我想将序列放入此列表模型中:

["This": True, "is" : True, "a" :True, "book": True]

2 个答案:

答案 0 :(得分:4)

您想构建一个不是列表的字典。请改用大括号{语法:

def preprocess(s):
    return {word: True for word in s.lower().split()}
s1 = 'This is a book'
text = preprocess(s1)

答案 1 :(得分:0)

您要做的是将序列放入字典而不是列表。 字典的格式是:

dictionaryName={
    key:value,
    key1:value1,
}

所以你的代码可以这样工作:

def preprocess(s):
    return {word:True for word in s.lower().split()}
s1 = 'This is a book'
text = preprocess(s1)