首页 > 编程 > Python > 正文

一些Python中的二维数组的操作方法

2020-01-04 19:17:08
字体:
来源:转载
供稿:网友

这篇文章主要介绍了一些Python中的二维数组的操作方法,是Python学习当中的基础知识,需要的朋友可以参考下

需要在程序中使用二维数组,网上找到一种这样的用法:

 

 
  1. #创建一个宽度为3,高度为4的数组 
  2. #[[0,0,0],  
  3. # [0,0,0], 
  4. # [0,0,0], 
  5. # [0,0,0]] 
  6. myList = [[0] * 3] * 4 

但是当操作myList[0][1] = 1时,发现整个第二列都被赋值,变成

 

 
  1. [[0,1,0], 
  2.  
  3. [0,1,0], 
  4.  
  5. [0,1,0], 
  6.  
  7. [0,1,0]] 

为什么...一时搞不懂,后面翻阅The Python Standard Library 找到答案

list * n—>n shallow copies of list concatenated, n个list的浅拷贝的连接

例:

 

 
  1. >>> lists = [[]] * 3 
  2. >>> lists 
  3. [[], [], []] 
  4. >>> lists[0].append(3
  5. >>> lists 
  6. [[3], [3], [3]] 

[[]]是一个含有一个空列表元素的列表,所以[[]]*3表示3个指向这个空列表元素的引用,修改任何

一个元素都会改变整个列表:

所以需要用另外一种方式进行创建多维数组,以免浅拷贝:

 

 
  1. >>> lists = [[] for i in range(3)] 
  2. >>> lists[0].append(3
  3. >>> lists[1].append(5
  4. >>> lists[2].append(7
  5. >>> lists 
  6. [[3], [5], [7]] 

之前的二维数组创建方式为:

 

 
  1. myList = [([0] * 3for i in range(4)] 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表