python 一维数组赋值_python二维数组转化为一维数组

python 一维数组赋值_python二维数组转化为一维数组当我们使用arr=[[0]*5]*5 初始化一个二维数组时,会得到一个5*5的数组,In[1]:arr=[[0]*5]*5In[2]:arrOut[2]:[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]然后对这个二维数组某个元素进行赋值…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

当我们使用arr = [[0]*5]*5 初始化一个二维数组时,会得到一个5*5的数组,

In [1]: arr = [[0]*5]*5
In [2]: arr
Out[2]: 
[[0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0]]

Jetbrains全家桶1年46,售后保障稳定

然后对这个二维数组某个元素进行赋值,会发现整列都会被赋值,

In [3]: arr[0][0] = 1
In [4]: arr
Out[4]: 
[[1, 0, 0, 0, 0],
 [1, 0, 0, 0, 0],
 [1, 0, 0, 0, 0],
 [1, 0, 0, 0, 0],
 [1, 0, 0, 0, 0]]

这是因为 [[0]*5]*5 表示的是指向 [0]*5 这个列表的引用,所以当你修改某一个值时,整个列表都会被改变。

换一种初始化方式可以解决这个问题,

In [1]: arr = [[0]*5 for _ in range(5)]
In [2]: arr
Out[2]: 
[[0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0]]

In [3]: arr[0][0] = 1
In [4]: arr
Out[4]: 
[[1, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0]]

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210076.html原文链接:https://javaforall.net

(0)
上一篇 2025年7月28日 下午1:43
下一篇 2025年7月28日 下午2:15


相关推荐

  • openclaw 安装手册及链接飞书

    openclaw 安装手册及链接飞书

    2026年3月16日
    2
  • mysql自定义函数详解_mysql自定义函数详解

    mysql自定义函数详解_mysql自定义函数详解需求:对于数据库中的记录,如果有两条连续的数据的value字段的值相同,则发邮件通知相关人员。需求分析:告警系统里面的告警检查是通过SQL来进行的,一般的SQL实现不了此功能,因此,这里可以通过函数的方式来实现。具体实现如下:1、数据表准备:tb_config_record。新建数据表脚本如下:createtabletb_config_record(idint,statusvarch…

    2025年10月3日
    4
  • Java集合List去重的几种方式「建议收藏」

    Java集合List去重的几种方式「建议收藏」1、使用LinkedHashSet删除arraylist中的重复数据LinkedHashSet是在一个ArrayList删除重复数据的最佳方法。LinkedHashSet在内部完成两件事: 删除重复数据 保持添加到其中的数据的顺序 Java示例使用LinkedHashSet删除arraylist中的重复项。在给定的示例中,numbersList是包含整数的arraylist,其中一些是重复的数字。例如1,3和5.我们将列表添加到LinkedHashSet,然后将内容返回到列表中。

    2022年5月9日
    426
  • JS 删除数组中某个元素的几种方式

    JS 删除数组中某个元素的几种方式目录第一种 删除最后一个元素 pop 删除 slice 删除 splice 删除 for 删除 length 删除第二种 删除第一个元素 shift 删除 slice 删除 splice 删除第三种 删除数组中某个指定下标的元素 splice 删除 for 删除第四种 删除数组中某个指定元素 splice 删除 filter 删除 forEach m

    2026年3月26日
    2
  • Date与时间戳的相互转换[通俗易懂]

    Date与时间戳的相互转换[通俗易懂]1、Date对象转换为时间戳Datedate=newDate();longtimes=date.getTime();System.out.println(times);效果如下:15088242832922、时间戳转换为Date日期对象longtimes=System.currentTimeMillis();Datedate=newDate(times);System.out.println(date);…

    2022年6月21日
    229
  • 月之暗面明确停止投流,杨植麟摸着DeepSeek过河

    月之暗面明确停止投流,杨植麟摸着DeepSeek过河

    2026年3月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号