【发布时间】:2022-01-13 19:01:42
【问题描述】:
假设我有一个如下所示的嵌套字典:
numbers = {
'one': {"square": "one", "cube": "one"},
'two': {"square": "four", "cube": "eight"},
'three': {"square": "nine", "cube": "twenty-seven"},
'four': {"square": "sixteen", "cube": "sixty-four"}
}
我想将正方形和立方体解压缩到列表中。我可以这样做:
squares = [n["square"] for n in numbers.values()]
cubes = [n["cube"] for n in numbers.values()]
但这对于重复的代码似乎不太令人满意。我也可以引入 numpy 并这样做:
import numpy
squares_array, cubes_array = numpy.array([(n["square"],n["cube"]) for n in numbers.values()]).T
这巧妙地将所有内容解包到 numpy 数组中,但看起来有点不令人满意,因为我不需要 numpy 来执行此操作,并且在我高度主观的意见中,最后进行转置有点奇怪。对我来说,这似乎不是“pythonic”。
所以问题是我如何在没有 numpy 的情况下在一行中做到这一点?
【问题讨论】:
标签: python dictionary nested unpack