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的答案