嵌套列表遍历三元组赋值:如何实现循环处理直至全部完成?
问题解决
你的代码只处理第一组元素的核心原因是硬编码了索引0,每次都固定取row_column_values[0]的元素,而且嵌套的while True和内层for循环完全多余,属于无效重复操作。
正确实现方式
直接遍历嵌套列表中的每个子列表,将子列表的三个元素分别赋值给变量即可:
# 方式1:解包语法,更简洁直观 for row_str, column_str, value in row_column_values: row = int(row_str) column = int(column_str) memory[row][column] = value
如果习惯用索引访问(适合需要明确指定位置的场景):
# 方式2:通过索引取值 for item in row_column_values: row = int(item[0]) column = int(item[1]) value = item[2] memory[row][column] = value
原代码问题拆解
- 固定索引限制了处理范围:
row_column_values[0][0]始终指向第一个子列表的元素,不管外层循环遍历到哪个子列表,都不会处理后续分组。 - 冗余循环无实际作用:内层
for line in range(len(list))会对当前子列表的3个元素各循环一次,但每次都执行相同的赋值操作,相当于重复给同一个memory[row][column]赋值3次;外层的while True也只是让这个重复操作执行一次就break,完全没必要。
内容的提问来源于stack exchange,提问作者letsgamble
相关产品推荐
相关产品推荐

