Python生成3×3随机数矩阵遇NameError:循环处理列表问题求助
解决NameError:未定义名称"lst"的问题
错误原因
你代码里大概率是在给lst1/lst2/lst3添加元素时,误写了变量名,用到了未定义的lst。比如本来应该写lst1.append(...),结果写成了lst.append(...),而lst从来没被初始化过,所以触发NameError。
错误代码示例(推测)
import random lst1 = [] for i in range(3): lst.append(random.randint(1, 101)) # 这里误用了未定义的lst lst2 = [] for i in range(3): lst.append(random.randint(1, 101)) lst3 = [] for i in range(3): lst.append(random.randint(1, 101)) print(lst1) print(lst2) print(lst3)
修正后的基础版本
把所有误写的lst改成对应的lst1/lst2/lst3即可:
import random lst1 = [] lst2 = [] lst3 = [] # 给每个列表添加3个随机数 for _ in range(3): lst1.append(random.randint(1, 101)) for _ in range(3): lst2.append(random.randint(1, 101)) for _ in range(3): lst3.append(random.randint(1, 101)) # 矩阵形式打印 print(lst1) print(lst2) print(lst3)
更简洁的优化写法
用嵌套列表推导式直接生成3×3矩阵,避免重复代码,也不容易出错:
import random # 生成3行,每行3个1-101的随机整数 matrix = [[random.randint(1, 101) for _ in range(3)] for _ in range(3)] # 逐行打印矩阵 for row in matrix: print(row)
关键提示
- 变量必须先定义再使用:比如要操作
lst1,必须先初始化lst1 = [],且后续调用时不能写错变量名。 - 列表推导式是Python生成列表的高效方式,尤其适合生成多维结构,减少冗余代码。
内容的提问来源于stack exchange,提问作者kirtyakshay
相关产品推荐
相关产品推荐

