Python遍历列表仅返回最后一个元素 无法逐个传递至其他函数问题
问题原因
- 遍历
alist、blist时,你每次循环都直接覆盖acc_id、sever变量的值,没有将单次遍历得到的元素存入额外容器,全量循环结束后变量只会保留列表最后一个元素的赋值 - 外层
for event in range(0,3)无实际业务作用,即使循环执行3次,内层遍历依然会覆盖变量的旧值,最终返回的还是最后一次循环生成的末尾元素 - 代码在所有循环结束后才返回变量,自然只能拿到最后一次的赋值结果
修复方案
场景1:两个列表元素按位置配对处理后存入主列表
def held(): alist = [1, 2, 3, 4] blist = ['bob', 'is','not', 'home'] main_list = [] # 存储处理后的最终结果 # 配对遍历两个列表的对应位置元素 for acc_item, sev_item in zip(alist, blist): acc_id = int(acc_item) sever = str(sev_item) # 此处可插入你需要调用的其他处理函数逻辑 main_list.append((acc_id, sever)) return main_list held()
输出结果
[(1, 'bob'), (2, 'is'), (3, 'not'), (4, 'home')]
场景2:两个列表元素分别处理后存入不同列表返回
def held(): alist = [1, 2, 3, 4] blist = ['bob', 'is','not', 'home'] acc_id_list = [] sever_list = [] for item in alist: acc_id = int(item) # 此处可插入其他处理函数逻辑 acc_id_list.append(acc_id) for item in blist: sever = str(item) # 此处可插入其他处理函数逻辑 sever_list.append(sever) return acc_id_list, sever_list held()
输出结果
([1, 2, 3, 4], ['bob', 'is', 'not', 'home'])
内容的提问来源于stack exchange,提问作者user16710824
相关产品推荐
相关产品推荐

