`
xitongyunwei
  • 浏览: 927328 次
文章分类
社区版块
存档分类
最新评论

python的二维数组定义与操作

 
阅读更多

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

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

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

[[0,1,0],

[0,1,0],

[0,1,0],

[0,1,0]]

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

list * n—>nshallow copiesof list concatenated, n个list的浅拷贝的连接

例:

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

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

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

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

?
1
2
3
4
5
6
>>> lists =[[]foriinrange(3)]
>>> lists[0].append(3)
>>> lists[1].append(5)
>>> lists[2].append(7)
>>> lists
[[3], [5], [7]]

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

?
1
myList=[([0]*3)foriinrange(4)]
分享到:
评论

相关推荐

    解决Python二维数组赋值问题

    今天小编就为大家分享一篇解决Python二维数组赋值问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Python数组定义方法

    本文实例讲述了Python数组定义方法。分享给大家供大家参考,具体如下: Python中没有数组的数据结构,但列表很像数组,如: a=[0,1,2] 这时:a[0]=0, a[1]=1, a[[2]=2,但引出一个问题,即如果数组a想定义为0到999...

    Python中创建二维数组

    Python中的列表list可以当做一维数组使用,但是没有直接的定义使用二维数组。如果直接使用a = [][]会产生SyntaxError: invalid syntax语法不正确错误。 一般Python中创建二维数组的方法是使用列表解析的方法 列表...

    python中字符串变二维数组的实例讲解

    在用python定义一个二维数组时可以有list和numpy.array两种方式,看了几篇python中二维数组的建立的博客发现大多都是建立的初始化的二维数组,而我需要通过文件读取得到的是字符串,再把字符串转换为二维数组,找不...

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

    2.创建二维数组的办法 •3.1 直接创建法 •3.2 列表生成式法 •3.3 使用模块numpy创建 1.遇到的问题 今天写Python代码的时候遇到了一个大坑,差点就耽误我交作业了。。。 问题是这样的,我需要创建一个二维数组,...

    Python的“二维”字典 (two-dimension dictionary)定义与实现方法

    那么有没有像数组有二维数组一样,有二维的字典呢?比如我需要对两个关键词进行查找的时候。2D dict 可以通过 dict_2d = {'a': {'a': 1, 'b': 3}, 'b': {'a': 6}} 来建立,并通过 dict_2d['a']['b'] 来访问。...

    Python操作多维数组输出和矩阵运算示例

    本文实例讲述了Python操作多维数组输出和矩阵运算。分享给大家供大家参考,具体如下: 在许多编程语言中(Java,COBOL,BASIC),多维数组或者矩阵是(限定各维度的大小)预先定义好的。而在Python中,其实现更简单...

    python语言程序设计基础第二版第二章答案-python语言程序设计基础(嵩天)第二章课 .pdf

    本周学习内容总结 ⼀维数组,了解了⼀维数组的定义(定义⼀个数组,需要明确数组变量名,数组元素的类型和数 组⼤⼩,即数组中元素的数量) ⼀维数组定义的⼀般形式为:类型名,数组名[数组长度] 类型名指定数组中每个元素...

    python 初始化一个定长的数组实例

    我们需要定义一个定# # 长的数组, python中代码如下: b = [0 for _ in range(10)] #也可以b = [0]*10 for i in range(10): pass # 赋值语句 以上这篇python 初始化一个定长的数组实例就是小编分享给大家的全部...

    对python numpy数组中冒号的使用方法详解

    输出为5×4二维数组 第一种意思,默认全部选择: 如,X[:,0]就是取矩阵X的所有行的第0列的元素,X[:,1] 就是取所有行的第1列的元素 第二种意思,指定范围,注意这里含左不含右 如,X[:, m:n]即取矩阵X的所有行...

    Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例

    本文实例讲述了Python2.7基于笛卡尔积算法实现N...datagroup : 表示n个list(python 中的list与其他编程中的数组定义类似)的集合,即一个二维数组 counterIndex:datagroup反向下标值 counter : 用来记录当前datagroup中

    python的Numpy库数组基础结构

    NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,python本事就携带了列表这个数据结构,与java的多维数组不同,python实现多维是通过列表的元素为列表来完成多维,例如一个二维数组也就是一个矩阵,例如**...

    围棋-Python源码

    创建棋盘:使用二维数组或矩阵表示围棋的棋盘。可以根据游戏规则确定棋盘的大小,通常是19x19个交叉点。 定义玩家和空点:使用常量或枚举类型来定义两个玩家(黑棋和白棋)以及空点。 初始化棋盘:将棋盘上的所有...

    php实现有序数组旋转后寻找最小值方法

    2、定义两个 指针left和right,指向数组的第一个元素和最后一个元素,定义一个中间指针mid 3、如果arr[left]小于arr[mid],那么把左边指针移动到mid处,mid从新计算 4.如果arr[left]大于arr[mid],那么把右边指针移动到...

    详解go 动态数组 二维动态数组

    go使用动态数组还有点麻烦,比python麻烦一点,需要先定义。 动态数组申明 var dynaArr []string 动态数组添加成员 dynaArr = append(dynaArr, one) ```go # 结构体数组 ```go package main import ( fmt ) type ...

    python数据分析随书代码

    2.5 一维数组的切片与索引 23 2.6 处理数组形状 24 2.6.1 堆叠数组 27 2.6.2 拆分NumPy数组 30 2.6.3 NumPy数组的属性 33 2.6.4 数组的转换 39 2.7 创建数组的视图和拷贝 40 2.8 花式索引 41 2.9 基于位置...

    TensorFlow 基础教程简介.docx

    简单地说,张量是一个 N 维数组,其中每个元素都具有相同的数据类型。例如, 一个三维 张量可以表示一个 RGB 图像,其中第一个维度表示图像的高度, 第二个维度表示图像的宽度,第三个维度表示图像的颜色通道。 张量...

    javalruleetcode-leetcode:LeetCode题解C++11、Java8、Python3、Scala版题解:rocket:

    1.4.二维数组及滚动数组 题号 描述 状态 1.5.数组的旋转 题号 描述 完成状态 1.6.特定顺序遍历二维数组 题号 C++11 完成状态 1.7.二维数组变换 题号 描述 完成状态 1.8.前缀和数组 题号 描述 完成状态 模板题-前缀和...

Global site tag (gtag.js) - Google Analytics