【发布时间】:2016-06-28 09:33:55
【问题描述】:
在 Python 中,当一个函数采用不同数量的相同类型的参数并且这些参数作为字典中的元素给出时,我如何将字典“展平”为参数列表?
以scipy.stats中的函数bartlett为例。它需要任意数量的 np-array 并比较它们的方差。它的定义开始:
def bartlett(*args):
...
我要比较的 np 数组存储在字典中(*):
data = { 'gender': gender-array, 'lefthome': lefthome-array, ... }
如何使用字典中的 all 元素编写参数列表,而不通过键访问显式列出它们。所以我正在寻找类似的东西:
barlett(data[*])
(*) np-arrays 是从 pandas DataFrame 中提取的。
【问题讨论】:
-
枚举字典中的键?
-
all elements 下是什么意思?如果你想传递字典值,只需调用 barlett(*data.values())
-
@vitalii 有效的是明确列出元素:
bartlett{data['gender'], data['lefthome'],...),但这很麻烦。 -
@halloleo 好的,试试
bartlett(*data.values()) -
@vitalii 是的,但是对于字典中的 所有 元素(可能不止这两个)。
标签: python arrays dictionary parameter-passing flatten