如何在函数调用中将值附加到 python 字典和 return 它
How to append values to a python dictionary and return it in a function call
我在执行多次的 python 函数调用中有一个 for 循环。我需要 return 字典中的值以将它们转储到数据库中。
这是一段示例代码,我如何将值附加到字典并确保我拥有所有这些值以供进一步使用。
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}
我认为您正在寻找标准库的 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)
如果你真的想使用你的结果,你必须确保没有为每次调用你的函数创建新的字典。
仍然有点不清楚你是否需要字典,只有当你想要键查找的能力时才需要它。如果您对制作数字列表(数组)感到满意,那么继续使用列表。
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
我在执行多次的 python 函数调用中有一个 for 循环。我需要 return 字典中的值以将它们转储到数据库中。
这是一段示例代码,我如何将值附加到字典并确保我拥有所有这些值以供进一步使用。
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}
我认为您正在寻找标准库的 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)
如果你真的想使用你的结果,你必须确保没有为每次调用你的函数创建新的字典。
仍然有点不清楚你是否需要字典,只有当你想要键查找的能力时才需要它。如果您对制作数字列表(数组)感到满意,那么继续使用列表。
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