python三维数组_数据结构——数组

本文介绍了Python中的数组结构,从一维列表到二维和三维数组的表示及操作。通过实例展示了如何使用Python处理一维、二维和三维数组,包括存储学生分数、查找三维数组中的最小值以及实现多项式的加法运算。
摘要由CSDN通过智能技术生成

c0aace75136aba3f72da274591f0473b.png

“线性表”(Linear List)是数学应用在计算机科学中的一种相当简单与基本的数据结构。按照内存存储方式可分为静态数据结构(也称为“密集表”)和动态数据结构(又称为“链表”)。

静态数据结构设计时相当简单,而且读取与修改表中任意一个元素的时间都是固定的。缺点是删除和插入数据时,需要移动大量的数据;动态数据结构的内存时在程序执行时才进行分配的,所以不需要事先声明,这样能充分节省内存。缺点是在设计数据结构时较为麻烦,另外在查找数据时,也无法像静态数据一般可以随机读取,必须直到按顺序找到该数据为止。

例1:使用Python的一维列表来记录学生的分数,使用for循环打印出每笔学生成绩并计算分数的总和。

Score = [87, 66, 90, 65, 70]
Total_Score = 0
for count in range(5):
    print("第%d位学生的分数:%d" %(count+1, Score[count]))
    Total_Score += Score[count]
print("---------------------------")
print('5位学生的总分:%d' %Total_Score)

【执行结果】

第1位学生的分数:87
第2位学生的分数:66
第3位学生的分数:90
第4位学生的分数:65
第5位学生的分数:70
---------------------------
5位学生的总分:378

一、二维数组

在实际的计算机内存中时无法以矩阵方式存储的,仍然是以线性方式来存储二维数组,就是把它视为一维数组的扩展来处理。一般就是按行或者按列的方式进行表示。在python中,列表中可以有列表,这种情况就称为二维列表,要读取二维列表的数据可以通过for循环来完成。简单来讲, 二维列表就是列表中元素是列表。

二、三维数组

基本上三维数组的表示法和二维数组一样,都可视为一维数组的延伸。如果数组是三维数组,就可以看作是一个立方体。

例2,设计一个python程序,利用嵌套循环来找出三维数组中所存储数组中的最小值。

num = [[[33, 45, 67], [23, 71, 66], [55, 38, 66]],
       [[21, 9, 15], [38, 69, 18], [90, 101, 89]]]
value = num[0][0][0]                      #设置value为num数组的第一个元素
for i in range(2):
    for j in range(3):
        for k in range(3):
            if (value>=num[i][j][k]):
                value = num[i][j][k]      #利用三重循环找出最小值
print("最小值 = %d" %value)

【执行结果】

最小值 = 9

定义一个3x3的矩阵

arr = [[None] * 3 for row in range(3)]
print(arr)

【执行结果】

[[None, None, None], [None, None, None], [None, None, None]]

三、数组与多项式

如何将一个多项式用数组结构存储在计算机中?

例3 设计一个python程序,并进行两个多项式的加法运算。

equation?tex=A%28x%29%3D3x%5E%7B4%7D%2B7x%5E%7B3%7D%2B6x%2B2
equation?tex=B%5Cleft%28+x+%5Cright%29%3Dx%5E%7B4%7D%2B5x%5E%7B3%7D%2B2x%5E%7B2%7D%2B9
ITEMS = 6
def PrintPoly(Poly, items):
    MaxExp = Poly[0]
    for i in range(1,Poly[0]+2):
        MaxExp -= 1
        if Poly[i] !=0:
            if (MaxExp+1)!=0:
                print('%dX^%d' %(Poly[i], MaxExp+1),  end='')
            else:
                print('%d' %Poly[i], end='')
            if MaxExp>=0:
             print('%c' %'+', end='')
    print()

def PolySum(Poly1, Poly2):
    result=[None]*ITEMS
    result[0] = Poly1[0]
    for i in range(1,Poly1[0]+2):
        result[i] = Poly1[i] +Poly2[i]
    PrintPoly(result, ITEMS)

PolyA = [4,3,7,0,6,2]
PolyB = [4,1,5,2,0,9]
PrintPoly(PolyA,ITEMS)
PrintPoly(PolyB,ITEMS)
PolySum(PolyA,PolyB)

【运行结果】

3X^4+7X^3+6X^1+2
1X^4+5X^3+2X^2+9
4X^4+12X^3+2X^2+6X^1+11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值