Python 有没有办法从中创建一个列表?

Python 有没有办法从中创建一个列表?,python,dictionary,list-comprehension,Python,Dictionary,List Comprehension,我刚刚学会了如何创建列表理解,我正在回顾我过去的项目,看看我可以在哪里创建理解。我在几个方面取得了成功,但后来我进入了代码的这一部分,我想知道是否有任何方法可以从以下内容创建列表理解: scores = util.Counter() for l in self.legalLabels: scores[l] = self.weights[l] * trainingData[i] 也许我只是想得有点太难了,但我想知道是否有任何方法可以用这个来创造一个理解 我的想法是: [(scores(

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

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]


任何帮助都将不胜感激

编辑:我没有注意
scores=utils.Counter()
,所以我提供了一个答案,即
list
理解。请参阅@jpp的答案以了解正确的方法

你的方法是正确的,但在理解范围内没有作业。你必须在它外面做一个

scores = [self.weights[l] * trainingData[I]) for l in self.legalLabels]
如果
util.Counter()
类似于字典,则可以通过其
update
方法使用字典对其进行更新。因此,您可以使用:

scores = util.Counter()
scores.update({L: self.weights[L] * trainingData[i] for L in self.legalLabels})
然后,对于某些标签
x
,您可以通过
分数[x]
访问结果


列表理解用于列表,词典理解用于词典。后者是。

什么是
util.Counter()
,它是自定义对象、字典(如
collections.Counter
)还是其他什么?@jpp它是一个类似于集合的字典。Counter它是一个字典,所以
分数
根本不是一个列表。把它变成一个肯定是错误的。哦,好吧,这很有道理。我怎样才能将这些归因于分数[I]?因为我想在self.legalLabels中为l做
[self.weights[l]*trainingData[I])
分数列表中的每个值……你能提供更多细节吗?我不太明白你的问题。你想让每个
l
都有
scores[l]=self.weights[l]*trainingData[I]
,对吗?嘿,是的,没错。如果你需要更多,请告诉我这正是我的答案。但是,由于我没有注意到您的
scores=util.Counter()
,这意味着分数是一本字典,所以我的答案不起作用(它是一个
列表
理解)。见下文@jpp的答案