猿问

有没有办法从中创建列表理解?

我刚刚学会了如何创建列表推导式,我正在回顾我过去的项目,看看我可以在哪里创建推导式。我在几个方面取得了成功,但后来我到了代码的这一部分,我想知道是否有任何方法可以从中创建列表理解:


scores = util.Counter()


for l in self.legalLabels:

    scores[l] = self.weights[l] * trainingData[i]

也许我只是想得太难了,但我想知道是否有任何方法可以使用它来创建理解?


我在想这样的事情:


[(scores(l) = self.weights[l] * trainingData[I]) for l in self.legalLabels]

但这在将每个值归因于分数 [l] 方面不起作用。


任何帮助将不胜感激!


潇潇雨雨
浏览 154回答 2
2回答

慕尼黑5688855

如果util.Counter()是像 一样的字典collections.Counter,你可以通过它的update方法用字典更新它。所以你可以使用:scores = util.Counter()scores.update({L: self.weights[L] * trainingData[i] for L in self.legalLabels})然后对于某些标签x,您可以通过scores[x].列表理解用于列表,字典理解用于字典。后者在文档中提到。

明月笑刀无情

我没有注意scores = utils.Counter(),所以我提供了一个list理解的答案。有关正确方法,请参阅@jpp 的答案。你的方法是对的,但在理解范围内没有分配。你必须在它外面做一个scores = [self.weights[l] * trainingData[I]) for l in self.legalLabels]
随时随地看视频慕课网APP

相关分类

Python
我要回答