我已经尝试过了,但到目前为止我无法解决这个问题。 我想创建一个元组列表,每个元组都是由字典值构建的:
my_list = [(x['field1'], x['field2']) for x in my_dict]
但问题是我想在一个函数中执行此操作,将我想要的字段传递给* args:
my_func('field1', 'field2')
如何从* args列表中构建第一个列表解析?
谢谢!
我试着澄清一下:
简单地说,我想要做的就是映射:
my_func('field1', 'field2')
对此:
tuple(x['field1'], x['field2'])
这将是my_func(* args)
中的一个声明答案 0 :(得分:1)
您可以通过对tuple
进行另一次理解来创建args
:
def my_func(*args):
return [tuple(x[arg] for arg in args) for x in my_dict]
但是,假设您的my_dict
是全局变量。但现在您可以像使用my_func('field1', 'field2')
指定的那样调用它。
我建议将字典添加到函数定义中:
def my_func(my_dict, *args):
return [tuple(x[arg] for arg in args) for x in my_dict]
并将其称为my_func(my_dict, 'field1', 'field2')
答案 1 :(得分:0)
简单地将这些论点称为正常:
def f(d, a, b):
return [(x[a], x[b]) for x in d]
result = f(my_dict, 'field1', 'field2')