python在创建二维数组时的易错处

文章讨论了在Python中创建二维数组时两种常见方法的差异,即`s=([[0for_inrange(3)]]*3)`和`s=([[0]*3for_inrange(3)]))`。虽然它们输出看似相同,但在修改元素时表现出不同行为。第一种方式会将所有行的同一列链接到同一个列表,而第二种则创建独立的子列表。因此,对元素的修改在两种情况下影响范围不同,提醒程序员在编码时要注意这种微妙的区别。
摘要由CSDN通过智能技术生成

今天在刷题的过程中,本小白发现了个易混点,自己一直以来好像都没搞明白,在此分享给诸位。

在pyhton中要得到一个二维数组,我们有两种方法:

1.  s=[ [0 for _ in range(3)] ]*3

2.  s=[[0]*3 for _ in range(3)]

这两种形式输出都是:

这两种形式看着很相似,并且结果也相同,但在实际运用过程中完全不同,稍不注意极其容易出错。

比如说:s[0][1]=1

执行上述操作输出为:

 

 这两种的输出结果完全不同,第一种把第1列的值全部改为了1;第二种则是按照指令只把第0行第1列的值修改为了1。

由此可知,我们在不同的情况下,灵活创建二维数组,但也要洞悉两者的差异,千万别想我一样,明明思路都对,最后却因为一个小错误而疑惑很久。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值