python 构建二位数组的两种不同的方式,具有巨大区别
python 构建二位数组的两种不同的方式,具有巨大区别
x=2 z=2
方式1:
Z = [[0]*z]*x
此时对Z的[0][0]元素进行赋值时
Z[0][0]=100
可以看到每个list的第一个元素都是100了;为什么会这样呢?因为*x,是对子list创建了多个引用,而不是在内存中开辟出新的值
方式2:
res = [[0] * z for _ in range(x)]
res[0][0]=100
这里的for _ in range(x)代表的是,在内存中开辟多个块,所以不会有引用的问题。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?