Python数组定义方法

作者:MinSen 时间:2021-05-30 08:46:39 

本文实例讲述了Python数组定义方法。分享给大家供大家参考,具体如下:

Python中没有数组的数据结构,但列表很像数组,如:


a=[0,1,2]

这时:a[0]=0, a[1]=1, a[[2]=2,但引出一个问题,即如果数组a想定义为0到999怎么办?这时可能通过a = range(0, 1000)实现。或省略为a = range(1000).如果想定义1000长度的a,初始值全为0,则 a = [0 for x in range(0, 1000)]

下面是二维数组的定义:

直接定义:


a=[[1,1],[1,1]]

这里定义了一个2*2的,且初始为0的二维数组。

间接定义:


a=[[0 for x in range(10)] for y in range(10)]

这里定义了10*10初始为0的二维数组。

还有更简单的字义二维数组的方法:


b = [[0]*10]*10

定义10*10初始为0的二维数组。

与a=[[0 for x in range(10)] for y in range(10)]比较:print a==b的结果为True。

但用b的定义方法代替a后,以前的可以正常运行的程序也出错了,经过仔细分析得出区别:

a[0][0]=1时,只有a[0][0]为1,其他全为0。

b[0][0]=1时,a[0][0],a[1][0],只到a[9,0]全部为1。

由此得到大数组中的10个小的一维数据全是一个相同的引用,即指向同一地址。
故 b = [[0]*10]*10并不符合我们常规意义上的二维数组。

同时经过试验:c=[0]*10的定义与c=[0 for x in range(10)]有同样的效果,而没有上面相同引用的问题,估计数组c的定义时是值类型相乘,而前面b的用类型的相乘,因为一维数组是一个引用(借用C#中的值类型和引用类型,不知是否合适)。

希望本文所述对大家Python程序设计有所帮助。

标签:Python,数组
0
投稿

猜你喜欢

  • Python缩进和冒号详解

    2023-04-21 16:22:11
  • Python使用win32 COM实现Excel的写入与保存功能示例

    2021-03-30 11:28:50
  • Javascript中Eval函数的使用

    2008-12-04 16:41:00
  • Python八皇后问题解答过程详解

    2021-09-09 18:06:17
  • python用字符组成图像代码实例

    2023-09-15 02:12:04
  • JavaScript大牛:Douglas Crockford

    2009-03-31 12:06:00
  • SQL Server数据库连接查询的种类及其应用

    2009-01-06 11:28:00
  • MYSQL数据库表设计与优化(二)

    2010-10-25 20:12:00
  • Oracle 语句优化分析说明第1/2页

    2009-09-18 13:23:00
  • golang中值类型/指针类型的变量区别总结

    2023-09-02 15:07:11
  • Python中使用 Selenium 实现网页截图实例

    2022-07-04 06:28:16
  • Python如何查看并打印matplotlib中所有的colormap(cmap)类型

    2023-12-05 11:04:28
  • Flask之请求钩子的实现

    2023-06-27 10:43:59
  • 用js实现小球的自由移动代码

    2023-08-23 02:57:29
  • 手把手教你利用opencv实现人脸识别功能(附源码+文档)

    2022-01-24 23:55:37
  • my.ini(my.cnf)与mysql优化指南

    2009-12-15 16:20:00
  • 基于Python爬取51cto博客页面信息过程解析

    2023-06-11 16:27:37
  • ASP.NET 2.0中Gridview控件高级技巧图文教程

    2007-08-07 15:46:00
  • Django操作cookie的实现

    2023-06-07 17:05:21
  • 简单了解Python字典copy与赋值的区别

    2022-07-16 11:35:52
  • asp之家 网络编程 m.aspxhome.com