如何在for循环中将函数返回值追加到列表与字典?
符合Python风格的实现方式
要实现每次迭代将function()的输出追加到x、y、z中,核心思路是先初始化存储结果的容器,再在循环中用内置方法合并每次的返回值,这是Python处理这类需求的标准写法:
先初始化最终结果的容器:
x和y作为列表,初始化为空列表z作为字典,初始化为空字典
在循环中解包
function()的返回值,再用对应内置方法完成追加/合并:- 列表用
extend():将另一个列表的所有元素追加到当前列表末尾 - 字典用
update():将另一个字典的键值对合并到当前字典(重复键会被新值覆盖)
- 列表用
完整代码示例:
def function(): mlist1 = [] # 可替换为实际生成的列表内容 mlist2 = [] mdict = dict() # 可替换为实际生成的字典内容 return mlist1, mlist2, mdict # 初始化结果容器 x = [] y = [] z = {} for i in range(10): # 解包当前迭代的返回值 curr_list1, curr_list2, curr_dict = function() # 追加/合并到结果容器 x.extend(curr_list1) y.extend(curr_list2) z.update(curr_dict)
补充说明
如果你的需求是将每次返回的整个列表作为单个元素存入x或y(比如让x成为二维列表),可以把extend()换成append():
x.append(curr_list1) y.append(curr_list2)
内容的提问来源于stack exchange,提问作者ZZZ
相关产品推荐
相关产品推荐

