- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下场景 - 考虑如下字典列表( 输入 ):
data = [{'key1' : 'k1v1', 'key2': 'k2v1'}, {'key1': 'k1v2', 'key2': 'k2v2'},
{'key1': 'k1v3', 'key2': 'k2v3'}, {'key1': 'k1v4', 'key2': 'k2v4'}]
可以看出,字典中的键是相同的。所以我想要做的是以下(
所需的输出 ):
{'key1': ['k1v1', 'k1v2', 'k1v3', 'k1v4'], 'key2': ['k2v1', 'k2v2', 'k2v3', 'k2v4']}
为了实现这一点,我可以使用以下简单的直接嵌套循环:
data_dict = dict()
for d in data:
for k, v in d.items():
if k in data_dict:
data_dict[k].append(v)
else:
data_dict[k] = [v]
问题 : 我们可以使用字典理解来做到这一点吗?换句话说,我们可以在字典理解中附加到现有的值列表吗?
最佳答案
这是我能做的最好的事情:
d = {}
for k in data[0].keys():
d[k] = list(d[k] for d in ds)
这是一个更接近字典理解的解决方案
data_dict = {
k: [d.get(k) for d in data]
for k in set().union(*data)
}
以下语法产生具有最快计时的代码:
data_dict = {k: [dt[k] for dt in data] for k in data[0].keys()}
# Timing:
# 1.08 µs ± 18.2 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
关于python-3.x - python : append to value-list using dictionary-comprehension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65731601/
我编写了一个函数,使用 CFFI 将 numpy 数组传递给 C 代码。它利用缓冲协议(protocol)和内存 View 有效地传递数据而无需复制数据。但是,这意味着您需要传递 C 连续数组并确保使
如何使用 for-comprehension 返回我可以分配给有序 Map 的内容?这是我拥有的代码的简化: class Bar class Foo(val name: String, val bar
我正在使用 docjure并且它的 select-columns 函数需要一个列映射。我想获取所有列而无需手动指定。 如何将以下内容生成为惰性无限向量序列 [:A :B :C :D :E ... :A
下一个代码 def f(chars: List[Char]): List[List[Char]] = chars match { case Nil => List(Nil) cas
在我的代码中有以下两种方法: public void AllDivisors(int max) { lrel[int,list[int]] div = [ | int i "); } pu
在下面的代码中,在 for 里面理解,我可以使用元组取消引用来引用字符串和索引: val strings = List("a", "b", "c") for (stringWithIndex val
我有个问题。 我有一个看起来像这样的嵌套列表。 x= [[{'screen_name': 'BreitbartNews', 'name': 'Breitbart News', 'id
来自Python,我喜欢Coffeescript从Python和Perl借来的许多功能(范围/ slice ,理解,破坏性分配)。 Coffeescript中是否有任何语法糖可以模仿Python的en
这是我需要在 Chapel 中重新创建的类似 Python 的模式。 class Gambler { var luckyNumbers: [1..0] int; } var nums = [13,
我有这段代码和一些讨厌的嵌套检查...... 我很确定它可以用一个很好的理解重写,但我对如何混合模式匹配的东西有点困惑 // first tries to find the token in a he
我如何定义 lists:append具有列表理解功能? 我想要类似的东西 1> append([[1, 2, 3], [a, b], [4, 5, 6]]). [1,2,3,a,b,4,5,6] 最佳
我正在尝试创建一个简洁的结构,对基于 future 的业务逻辑进行理解。这是一个示例,其中包含基于异常处理的工作示例: (for { // find the user by id, findUse
例如,给定输入 n = 3 我想获得: [(1,),(2,),(3,),(1,2),(1,3),(2,3),(1,2,3)] 我尝试了类似 python 的语法: combs = [c
考虑这个 Map[String, Any] : val m1 = Map(("k1" -> "v1"), ("k2" -> 10)) 现在让我们写一个 for : scala> for ((a, b)
如何将此map / flatMap转换为,以进行理解,谢谢。 def compute2(maybeFoo: Option[Foo]): Option[Int] = maybeFoo
是否可以在 Scala 中专门研究 if 中的条件?在一个理解?我正在考虑以下方面: val collection: SomeGenericCollection[Int] = ... trait Co
我正在尝试使用 Julia 中的新 walkdir 函数获取文件列表。以下内容有效,但我希望结果是一个简单的文件列表。这可以通过数组理解来实现,而无需在创建数组后将其展平吗? files = [[
我在使用 Scalaz 和 Task/EitherT 的 Scala 中有以下代码片段: def myMethod(request: MyRequest) : EitherT[Task, Failur
我目前正在做 Wiki 上的 99 个 Haskell 问题。话虽如此,我正在做第 26 题,它需要一个程序,该程序可以用给定集合中的 n 个元素编写所有组合。我用很多函数完成了我的实现,程序看起来是
给定以下类型: sealed trait Pet { val name: String } case class Dog(override val name: String) extends Pe
我是一名优秀的程序员,十分优秀!