首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python创建二维数组(关于list的一个小坑)

遇到的问题

今天写Python代码的时候遇到了一个大坑,问题是这样的,我需要创建一个二维数组,如下:

输出结果如下:

是不是看起来没有一点问题?

一开始我也是这么觉得的,以为是我其他地方用错了什么函数,结果这么一试:

输出结果如下:

是不是很惊讶?! 这个问题真的是折磨我一个中午,去网上一搜,官方文档中给出的说明是这样的:

Note also that the copies are shallow; nested structures are not copied. This often haunts new Python programmers; consider:

What has happened is that [[]] is a one-element list containing an empty  list, so all three elements of [[]] * 3 are (pointers to) this single  empty list. Modifying any of the elements of lists modifies this single  list. You can create a list of different lists this way:

也就是说matrix = [array] * 3操作中,只是创建3个指向array的引用,所以一旦array改变,matrix中3个list也会随之改变。

2.创建二维数组的办法

2.1 直接创建法

简单粗暴,不过太麻烦,一般不用。

2.2 列表生成式法

学会使用列表生成式,终生受益。

2.3 使用模块numpy创建

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210305A07S3700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券