![算法零基础一本通(Python版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/51/44510051/b_44510051.jpg)
2-6 与数组有关的Python程序
前几节是数组的相关知识,对于想进一步学习信息科学的人很有帮助。其实Python语言对于常用的数组数据处理已经有内建的方法,如建立、插入、删除数据,本节将做说明。
在Python程序语言的数据结构中,列表(list)与我们所提的数组非常类似,不过列表结构允许数组元素含不同数据形态,所以在使用上更具弹性,不过也会造成执行速度较差以及需要较多的系统资源。如果数据量少,其实也可以将列表当作数组使用。
Python内建有array模块,使用这个模块可以建立整数、浮点数的数组,在应用上可以用一个字符的type code指定数组的数据形态。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-T33_46763.jpg?sign=1739588464-YYNo4ovxy86TQX4rKTqrPKPHslxcZCrb-0-94e9c3c71bbfde749b40bb879fa3442c)
在使用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=1739588464-L62UIuLC4mQrhxshPzmcbO2X5W6MESXf-0-c3c451842fafddc46d998c1bf855985a)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P34_46765.jpg?sign=1739588464-otggdjEdgHPsqkRFRKjKA1oSG7Rg5umB-0-9a50d4c8ff0acbae7f101b7ec8a8c01c)
2-6-2 存取数组内容
我们可以直接使用索引值存取数组内容。
程序实例ch2_2.py:建立数组然后存取数组内容。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P34_46766.jpg?sign=1739588464-PsDh06IGkntZc6FvNCGtRxNMwZKCLsRa-0-db11f3979620d08a875b4336537cfeab)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P34_46767.jpg?sign=1739588464-WcmNnxEE1I6urGK8Ot9pcxhlRKQlOoLl-0-56f876faf157f02f693ce81c4ba11ce1)
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=1739588464-z7rAb0PDJ17HI5TmORF1Jm7fp0L9juNI-0-f49ac203e66342d00cc8c0413f422cc3)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P35_46769.jpg?sign=1739588464-iQ7fFaLMFBoE40rUguF0bu32qH229KVV-0-f6f189283ea0edd9969fbd98a4c431d7)
append( )则是可以将数据插入数组末端。
程序实例ch2_4.py:先建立数组,然后在数组末端插入100。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P35_46770.jpg?sign=1739588464-VmQgceGRFONSHOqqJVCg6M3o9xs1mo4X-0-fce9bc68020cc46cdab7acd08de6642a)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P35_46771.jpg?sign=1739588464-BwJf81L9xu8xlfGUfMzVeYf7dXIWGIyZ-0-47ad582525f7d8b21c9c9afac6a57541)
2-6-4 删除数组元素
可以使用remove(x)方法删除数组中第一个出现的元素x。
程序实例ch2_5.py:先建立数组,然后删除数组元素25。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P36_46772.jpg?sign=1739588464-YRXpKeT78yKCsUZ386gwF3znZEAu60Nb-0-d033f469ddcaa990c8567137d01dcb7a)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P36_46773.jpg?sign=1739588464-AwFtCRmFHzxoQS8Ubo8G85D77fo5ezyP-0-e1062aecf1bf44fe78f04dd35bad8dc6)
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=1739588464-D6YNQ1dgpgvjvjQ42VzYHnpmGXy3OfX7-0-f603d8b931f3a354adbf0db2a8943b8c)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P36_46775.jpg?sign=1739588464-JjXOLSu6xzJIFn4RGnLgWaFLjHD35YkK-0-da6a573593ea17e6b0b9b137a97d1e86)
2-6-5 搜寻数组元素
可以使用index(x)方法搜寻指定数组元素x的索引。
程序实例ch2_7.py:先建立数组,然后找出数组元素35的索引值。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P37_51154.jpg?sign=1739588464-hBgkHyAaBQPxnA56Lsk3tm1kHGJ4BQeN-0-888cf14436a43aeb57eb66106f438005)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P37_46777.jpg?sign=1739588464-7LbVIkW2Y0qD10dFq2i7SVTrICD0j9FV-0-77a5a80180777d62624891766bbd5931)
2-6-6 更新数组内容
这一节主要是更改数组某索引内容。
程序实例ch2_8.py:更改索引2的内容为100。
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P37_51153.jpg?sign=1739588464-cD7ULzdnjAhhzcs0IWEMVcGQzzFPvJca-0-897d54ba652f84d6020fc92836238976)
执行结果
![](https://epubservercos.yuewen.com/6BDBC6/23721658309542706/epubprivate/OEBPS/Images/Figure-P37_46779.jpg?sign=1739588464-pRRAmMXU6cKWjTiUtzqk74pG8G5l2NOh-0-bdf451e58d9eb8d165a259683ff57b44)
2-6-7 Numpy
Python是一个应用范围很广的程序语言,为了应对高速运算,在人工智能领域常用Numpy模块执行相关的数组(array)运算,有关这方面的应用读者可以参考笔者所著的《Python数据科学零基础一本通》。