- 算法零基础一本通(Python版)
- 洪锦魁
- 829字
- 2022-07-29 15:07:47
2-6 与数组有关的Python程序
前几节是数组的相关知识,对于想进一步学习信息科学的人很有帮助。其实Python语言对于常用的数组数据处理已经有内建的方法,如建立、插入、删除数据,本节将做说明。
在Python程序语言的数据结构中,列表(list)与我们所提的数组非常类似,不过列表结构允许数组元素含不同数据形态,所以在使用上更具弹性,不过也会造成执行速度较差以及需要较多的系统资源。如果数据量少,其实也可以将列表当作数组使用。
Python内建有array模块,使用这个模块可以建立整数、浮点数的数组,在应用上可以用一个字符的type code指定数组的数据形态。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-T33_46763.jpg?sign=1739546405-7lcRmXl5hv1Requm97r65gOTrQDR9m2M-0-df362a2c4eebc937d48a5e7c0ba3c6c1)
在使用array模块前,必须先导入此模块:
from array import *
2-6-1 建立数组
可以使用array( )方法。
array(typecode[, initializer])
typecode是指所建立数组的数据形态,第2个参数是所建的数组内容。
程序实例ch2_1.py:建立数组然后打印。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P34_46764.jpg?sign=1739546405-cy9JfsXmtw11n6mhlFucaHzOKyvPGv02-0-71a746aac703056a11bae41d2ac24a66)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P34_46765.jpg?sign=1739546405-g08otB6P9gbdx76SfcJN0FbynMyOunA7-0-70e8790925ae4ac552deadbcc3d2efb0)
2-6-2 存取数组内容
我们可以直接使用索引值存取数组内容。
程序实例ch2_2.py:建立数组然后存取数组内容。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P34_46766.jpg?sign=1739546405-bA4uTDcB3hEY8cSo7MzfJOBswCxGRtIK-0-68f0bd8b38e6ffa69c445a3500188174)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P34_46767.jpg?sign=1739546405-Fp1KtOm5jEe42ekT3MzU8wIBrXIf7KUo-0-6444f791bbc643b0e2f1ca9ee914aaaf)
2-6-3 将数据插入数组
可以使用insert( )方法,将数据插入数组。
insert(i, x)
在索引i位置插入数据x。
程序实例ch2_3.py:先建立数组,然后在索引2位置插入100。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P35_46768.jpg?sign=1739546405-90pEtUKMmMqwZjXMJCVkQYjREIdlVD03-0-e7537f4a52a42f3edbd384e2836df09d)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P35_46769.jpg?sign=1739546405-EzpWbUg4JfdCYH9AHRWAGxi7DGhkYZPb-0-4972b58b3424631aa6f7b6989de653fa)
append( )则是可以将数据插入数组末端。
程序实例ch2_4.py:先建立数组,然后在数组末端插入100。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P35_46770.jpg?sign=1739546405-taty0oaRr7Qc5rUjIVQt1gEP0aDMX04w-0-8da49e98bfbf27f4e24bda7e276f27e3)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P35_46771.jpg?sign=1739546405-D0WCWHJC5Dw1E6fIuaUDH6SjLb3iFkmh-0-c94cbcdc0af015addc8c3c1eefac0054)
2-6-4 删除数组元素
可以使用remove(x)方法删除数组中第一个出现的元素x。
程序实例ch2_5.py:先建立数组,然后删除数组元素25。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P36_46772.jpg?sign=1739546405-SRG2zzReu5Tudiej4xqKnawFtrx1CKdR-0-0f7a7d3c674f52df8bc947182428098d)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P36_46773.jpg?sign=1739546405-W7Shp1ttFsFaA9EnfKxzBUqviBrpVkjX-0-2093bc18f1ae8695594c82b57bed416a)
pop(i)可以回传和删除索引i的元素,若省略i相当于i=-1,此时可以回传和删除最后一个元素。
程序实例ch2_6.py:先建立数组,然后第1次使用pop( ),第2次使用pop(2),回传和删除数组元素。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P36_65774.jpg?sign=1739546405-iBmHQU8EtPH3PMIopTrv2e2D51NeQYmZ-0-94822f1b18c14c01e0360ccc5d204415)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P36_46775.jpg?sign=1739546405-z56mBoC9EWNh9p0IWMbDRaEaDq0qUCOA-0-4f20de7704185d670e789e6771ca739a)
2-6-5 搜寻数组元素
可以使用index(x)方法搜寻指定数组元素x的索引。
程序实例ch2_7.py:先建立数组,然后找出数组元素35的索引值。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P37_51154.jpg?sign=1739546405-NxwXBtdw0taJkghf59J1A3NnZHbCm29R-0-63f63ee351ae8579f5bf9e9ad93f5cc4)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P37_46777.jpg?sign=1739546405-09tKoZ5EozrSj4bZfzK6u2TyXsBjdPXC-0-742884d2975fd933282db3f00bc15c46)
2-6-6 更新数组内容
这一节主要是更改数组某索引内容。
程序实例ch2_8.py:更改索引2的内容为100。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P37_51153.jpg?sign=1739546405-eeXDIgkOKjxhQP4qGNCRrUPWUbMSQJwp-0-371ec8794a5849ca0ac3cc4e037517a2)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P37_46779.jpg?sign=1739546405-tMHBI23IO00l5vhkSIGZkE15J68tM4QF-0-b9d11b6b385b9a3fbbf14bf6323a5c23)
2-6-7 Numpy
Python是一个应用范围很广的程序语言,为了应对高速运算,在人工智能领域常用Numpy模块执行相关的数组(array)运算,有关这方面的应用读者可以参考笔者所著的《Python数据科学零基础一本通》。