将单词长度附加到列表的列表理解语法错误
List comprehension syntax error for appending word length to a list
我试图将下面的示例放入来自 NLP 的列表理解中 Python,第 3 章中的问题 10。我尝试了各种组合来尝试使这种理解起作用。我想在该单词的长度旁边显示 'sent' 中的单词。
import nltk
sent = sent = ['The', 'dog', 'gave', 'John', 'the', 'newspaper']
result = []
[word_len=(word, len(word)), result.append(word_len) for word in sent]
File "<stdin>", line 1
[word_len = (word, len(word)), result.append(word_len) for word in sent]
^
语法错误:语法无效
或[word_len=(word, len(word)) result.append(word_len) for word in sent]
您不能在列表理解中进行赋值。你也不应该将它用于副作用(例如你的 result.append(word_len)
.
要么不要在这里使用列表理解。
sent = ['The', 'dog', 'gave', 'John', 'the', 'newspaper']
result = []
some_list = []
for word in sent:
result.append(len(word))
some_list.append((word, len(word))
或者,如果您所做的只是填充结果,只需直接将其设为列表理解即可。
result = [len(word) for word in sent]
要扩展 "side effect" 警告,您可以这样做:
result = []
[result.append(len(word)) for word in sent]
这将根据需要填充 result
,但格式不正确。它在内存中创建了一个 None
的列表(因为 list.append
总是 returns None
)实际上并不需要存在。
我想你只是想要:
[(word, len(word)) for word in sent]
虽然你的问题与 nltk 无关,它只是纯粹的列表理解。
我试图将下面的示例放入来自 NLP 的列表理解中 Python,第 3 章中的问题 10。我尝试了各种组合来尝试使这种理解起作用。我想在该单词的长度旁边显示 'sent' 中的单词。
import nltk
sent = sent = ['The', 'dog', 'gave', 'John', 'the', 'newspaper']
result = []
[word_len=(word, len(word)), result.append(word_len) for word in sent]
File "<stdin>", line 1
[word_len = (word, len(word)), result.append(word_len) for word in sent]
^
语法错误:语法无效
或[word_len=(word, len(word)) result.append(word_len) for word in sent]
您不能在列表理解中进行赋值。你也不应该将它用于副作用(例如你的 result.append(word_len)
.
要么不要在这里使用列表理解。
sent = ['The', 'dog', 'gave', 'John', 'the', 'newspaper']
result = []
some_list = []
for word in sent:
result.append(len(word))
some_list.append((word, len(word))
或者,如果您所做的只是填充结果,只需直接将其设为列表理解即可。
result = [len(word) for word in sent]
要扩展 "side effect" 警告,您可以这样做:
result = []
[result.append(len(word)) for word in sent]
这将根据需要填充 result
,但格式不正确。它在内存中创建了一个 None
的列表(因为 list.append
总是 returns None
)实际上并不需要存在。
我想你只是想要:
[(word, len(word)) for word in sent]
虽然你的问题与 nltk 无关,它只是纯粹的列表理解。