python:获取字典值中的键值

python:获取字典值中的键值,python,dictionary,Python,Dictionary,我想将键字符串作为mn的参数传递到lambda函数的同一行中。有办法吗?我不想再次键入密钥字符串 switch = { 'foo': lambda: bb.Data(ticker=self.ticker, key=self.key, func='yes', mn='foo'), 'bar': lambda: bb.Data(ticker=self.ticker, key=self.key, mn='bar') } 您可以这样创建字典: switch = { key: l

我想将键字符串作为
mn
的参数传递到lambda函数的同一行中。有办法吗?我不想再次键入密钥字符串

switch = {
    'foo': lambda: bb.Data(ticker=self.ticker, key=self.key, func='yes', mn='foo'),
    'bar': lambda: bb.Data(ticker=self.ticker, key=self.key, mn='bar')
}

您可以这样创建字典:

switch = {
    key: lambda: do_something(key)
    for key in ['foo', 'bar']
}
def add_dict_item(a_dict, key):
    if key == 'foo':
        a_dict[key] = lambda: do_something(key)
    elif key == 'bar':
        a_dict[key] = lambda: do_something_else(key)

switch = {}
add_dict_item(switch, 'foo')
add_dict_item(switch, 'bar')
如果要为不同的键调用不同的函数,则需要以下内容:

switch = {
    key: lambda: do_something(key)
    for key in ['foo', 'bar']
}
def add_dict_item(a_dict, key):
    if key == 'foo':
        a_dict[key] = lambda: do_something(key)
    elif key == 'bar':
        a_dict[key] = lambda: do_something_else(key)

switch = {}
add_dict_item(switch, 'foo')
add_dict_item(switch, 'bar')

您可以这样创建字典:

switch = {
    key: lambda: do_something(key)
    for key in ['foo', 'bar']
}
def add_dict_item(a_dict, key):
    if key == 'foo':
        a_dict[key] = lambda: do_something(key)
    elif key == 'bar':
        a_dict[key] = lambda: do_something_else(key)

switch = {}
add_dict_item(switch, 'foo')
add_dict_item(switch, 'bar')
如果要为不同的键调用不同的函数,则需要以下内容:

switch = {
    key: lambda: do_something(key)
    for key in ['foo', 'bar']
}
def add_dict_item(a_dict, key):
    if key == 'foo':
        a_dict[key] = lambda: do_something(key)
    elif key == 'bar':
        a_dict[key] = lambda: do_something_else(key)

switch = {}
add_dict_item(switch, 'foo')
add_dict_item(switch, 'bar')

由于使用了self,因此可以定义成员函数。 使用字典理解

def mn_func(self, mn_item):
   return bb.Data(ticker=self.ticker, key=self.key, mn=mn_item)

list_of_items = ['foo', 'bar']
switch ={ mn_item:mn_func(mn_item) for mn_item in list_of_items}

由于使用了self,因此可以定义成员函数。 使用字典理解

def mn_func(self, mn_item):
   return bb.Data(ticker=self.ticker, key=self.key, mn=mn_item)

list_of_items = ['foo', 'bar']
switch ={ mn_item:mn_func(mn_item) for mn_item in list_of_items}

谢谢如何编辑它?我习惯于pycharm中的快捷方式,不确定是否有类似于
ctrl+alt+l
的快捷方式。请不要在示例中使用
bb.Data
。这使得它不必要地难以复制。谢谢。如何编辑它?我习惯于pycharm中的快捷方式,不确定是否有类似于
ctrl+alt+l
的快捷方式。请不要在示例中使用
bb.Data
。这使得它不必要地难以复制。我想,如果参数的数量相同,那也没关系。如果它们不同呢?你是什么意思?我的意思是参数的数量是多少?在回调中需要一个
if
块,它可以为每个键选择不同的函数调用。不确定这是否会使代码更具可读性…在我的回答中添加了这一点。我想,如果参数的数量相同,也可以。如果它们不同呢?你是什么意思?我的意思是参数的数量是多少?在回调中需要一个
if
块,它可以为每个键选择不同的函数调用。不确定这是否会使代码更具可读性…将其添加到我的答案中