如何将值附加到python字典并在函数调用中返回它

如何将值附加到python字典并在函数调用中返回它,python,dictionary,for-loop,return,Python,Dictionary,For Loop,Return,我在python函数调用中有一个for循环,该函数调用执行多次。我需要返回字典中的值以将它们转储到数据库中 下面是一段示例代码,我如何将值附加到字典中,并确保所有值都可供进一步使用 def parser_code(): log = dict() for i in range(len): log['abc'] = 2*i log['xyz'] = 10+i return log 这将至少执行两次,因此我希望字典是log={['abc':2,

我在python函数调用中有一个for循环,该函数调用执行多次。我需要返回字典中的值以将它们转储到数据库中

下面是一段示例代码,我如何将值附加到字典中,并确保所有值都可供进一步使用

def parser_code():
    log = dict()
    for i in range(len):
        log['abc'] = 2*i
        log['xyz'] = 10+i
    return log
这将至少执行两次,因此我希望字典是log=
{['abc':2,'xyz':11],'abc':3,'xyz':12]}


我如何每次都附加到结果中?还是有更聪明的方法

可以将字典作为函数的参数

请不要告诉我您的代码不适合我(for循环的原始缩进-现在已更正)和len参数)。我需要猜猜你到底在做什么。你能看看问题或评论中的示例代码吗

def parser_code(result, length):
   for i in range(length):
       result['abc'] = 2*i
       result['xyz'] = 10+i
   return result

d = {}
parser_code(d, 3)
print(d)
parser_code(d, 3)
print(d)
将给出以下输出:

python3 ./main.py 
{'abc': 4, 'xyz': 12}
{'abc': 4, 'xyz': 12}

可以将字典作为函数的参数

请不要告诉我您的代码不适合我(for循环的原始缩进-现在已更正)和len参数)。我需要猜猜你到底在做什么。你能看看问题或评论中的示例代码吗

def parser_code(result, length):
   for i in range(length):
       result['abc'] = 2*i
       result['xyz'] = 10+i
   return result

d = {}
parser_code(d, 3)
print(d)
parser_code(d, 3)
print(d)
将给出以下输出:

python3 ./main.py 
{'abc': 4, 'xyz': 12}
{'abc': 4, 'xyz': 12}

我想您正在寻找std libs的
defaultdict
部分

from collections import defaultdict
glog = defaultdict(list)
def parser_code(dd):
    for i in range(length):
        dd['abc'].append(2*i)
    return dd

glog = parser_code(glog)
如果你真的想使用你的结果,你必须确保dict不是为每次调用你的函数而创建的

仍然有点不清楚您是否需要dict,您只需要在需要键查找功能时才需要它。如果你对仅仅制作一个数字列表(数组)感到满意,那么继续使用列表

glog = list()
def parser_code(lst):
    return lst + [2*i for i in range(length)]
glog = parser_code(glog)

我想您正在寻找std libs的
defaultdict
部分

from collections import defaultdict
glog = defaultdict(list)
def parser_code(dd):
    for i in range(length):
        dd['abc'].append(2*i)
    return dd

glog = parser_code(glog)
如果你真的想使用你的结果,你必须确保dict不是为每次调用你的函数而创建的

仍然有点不清楚您是否需要dict,您只需要在需要键查找功能时才需要它。如果你对仅仅制作一个数字列表(数组)感到满意,那么继续使用列表

glog = list()
def parser_code(lst):
    return lst + [2*i for i in range(length)]
glog = parser_code(glog)

我不能100%确定您期望的是什么行为,但我认为这段代码应该足够了:

def parser_code(length):
  log = list()
  for i in range(length):
    this_dict = dict()
    this_dict['abc'] = 2*i
    this_dict['xyz'] = 10+i
    log.append(this_dict)
  return log

我不能100%确定您期望的是什么行为,但我认为这段代码应该足够了:

def parser_code(length):
  log = list()
  for i in range(length):
    this_dict = dict()
    this_dict['abc'] = 2*i
    this_dict['xyz'] = 10+i
    log.append(this_dict)
  return log


您期望的答案的语法很奇怪。是否希望
log
为列表类型,而不是dict?因此,
log=[{'abc':2,'xyz':11},{'abc':3,'xyz':12}]
?它可以是一个dict,我只想将for循环的所有结果附加到其中。问题是,在Python中,字典的工作方式与此不同。您可以设置字典键的值,但“追加”不是dicts的功能。为了更清楚地了解您希望在函数结果中包含的内容,可以稍后解释您希望使用它执行的操作。然后有人可以为结果提供一个合适的数据结构,我将把它们存储在sqlite数据库中。“abc”和“xyz”实际上是与正在运行的服务器实例相关的信息,因此它们可以用于不同的服务器,也可以在不同的时间段使用。预期答案的语法很奇怪。是否希望
log
为列表类型,而不是dict?因此,
log=[{'abc':2,'xyz':11},{'abc':3,'xyz':12}]
?它可以是一个dict,我只想将for循环的所有结果附加到其中。问题是,在Python中,字典的工作方式与此不同。您可以设置字典键的值,但“追加”不是dicts的功能。为了更清楚地了解您希望在函数结果中包含的内容,可以稍后解释您希望使用它执行的操作。然后有人可以为结果提供一个合适的数据结构,我将把它们存储在sqlite数据库中。“abc”和“xyz”实际上是与服务器的运行实例相关的信息,因此它们可以用于不同的服务器,也可以在不同的时间段。我不确定这是否回答了他的问题。好的,因此它确实避免了在每次调用时重置dict,但这仍然不是他们要求的结构是的,您每次都会使用现有的dict,而不是新的dict。感谢您的回复,我正在寻找一些不同的东西-每次将值添加到同一个字典中,然后全部返回。我不确定这是否回答了他的问题。好的,这样确实避免了每次调用时重置dict,但这仍然不是他们要求的结构是的,你将使用现有的dict,而不是新的dict,每次都是。谢谢你的回复。我一直在寻找一些不同的东西——每次都将值添加到同一个字典中,然后全部返回。这正是他想要的。是的,而不是构建自己的自定义字典。谢谢。我不知道
defaultdict
,这对我的用例也很有帮助!这正是他想要的是的,而不是建立自己的自定义词典。多谢。我不知道
defaultdict
,这对我的用例也很有帮助!是的,这很有效,非常感谢!我想我指的是这样的东西!是的,这很有效,非常感谢!我想我指的是这样的东西!