通过Python中的函数从词典列表中提取键

时间:2018-11-13 19:53:32

标签: python

假设我有一个字典列表,称为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'

当我在函数中传递实变量名称时,它正在起作用...

将字典列表传递到函数中的正确方法是什么?

2 个答案:

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