假设我有一个字典列表,称为x。 如果我要提取密钥并将其推入名为y的新列表中,
handleClick = (e, data) => {
console.log(data.value)
console.log(e._targetInst.return.key)
}
现在我要对一个函数执行相同的操作。由于我事先不知道字典列表的名称,因此我在考虑使用* args
y = {k for d in x for k in d.keys()}
y = {k for k in chain(*x)}
但是这样做会返回AttributeError:'list'对象没有属性'keys'
当我在函数中传递实变量名称时,它正在起作用...
将字典列表传递到函数中的正确方法是什么?
答案 0 :(得分:1)
x_list = formatting(*x) # <-- don't forget to expand "x" into "args"
否则,args = (x,)
而不是您期望的args = x
。
答案 1 :(得分:0)
首先,您应该使用列表推导功能,以使y成为列表
y = [k for d in x for k in d.keys()]
之后,在这里scnerd注释,在函数中使用X之前,应在Args中将其展开。但是我不明白为什么要使用* args,因为即使您不知道字典列表的名称,也可以正常使用函数名称并使用以下代码:
def formatting(dicts_list):
return [k for d in dicts_list for k in d.keys()]
x_list = formatting(x)