【Python数据结构与算法】数组和列表

本文探讨了抽象数据类型(ADT)的概念及其在Python中的实现,并通过具体案例介绍了如何使用py.test进行单元测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2018-7-17 北京暴雨
一周多没更新了,总是往医院跑。
根据Pegasus Wang 大佬的教程,边学边做

抽象数据类型ADT
Abstract Data Type,抽象数据类型,我们在组合已有的数据结构来实现一种新的数据类型, ADT 定义了类型的数据和操作。
实现一个ADT的时候,应该注意以下几点:
1.如何选用恰当的数据结构作为存储?
2.选取的数据结构能否满足 ADT 的功能需求
3.实现效率如何?

学习到用py.test进行python代码的单元测试。

线性结构
特点:
1.内存连续
2.下标进行访问
数组array和列表list

array是python内置的,只能存储同一类型,数值和字符
时间复杂度还是不是太明白。

list:
用list实现array ADT

### Python数组数据结构算法 #### 数组的基本概念 程序由数据结构加上算法构成。对于数组而言,这是一种线性的数据结构,用于存储相同类型的元素集合[^2]。 #### 创建初始化数组Python中可以通过`array`模块来创建数组对象: ```python import array arr = array.array('i', [1, 3, 5, 7, 9]) print(arr) ``` 这段代码展示了如何通过指定类型码'i'(表示有符号整数)并传入初始值列表来实例化一个新的数组对象[^4]。 #### 访问修改数组元素 可以直接使用索引来访问单个元素或切片获取子集;也可以利用内置方法如extend()向现有数组追加新项: ```python a = array.array('i', range(5)) print("构造函数创建") print(a) a.extend([5, 6, 7]) print("增添后的数组:") print(a) # 获取部分元素 subset = a[2:4] print(f"获取第3到第4个元素:{subset}") # 转换为枚举形式打印出来 for index, value in enumerate(a): print(f"{index}:{value}") ``` 上述例子说明了怎样对已有的数组执行增加操作,并演示了几种常见的读取方式。 #### 反转数组顺序 如果想要保持原数组不变的情况下得到其逆序排列的结果,则可以这样做: ```python reversed_arr = arr[::-1] print(reversed_arr) print(arr) # 原始数组未被更改 ``` 这里采用了Python特有的负步长切片语法实现了非破坏式的反转效果[^3]。 另外还可以编写自定义函数来进行更复杂的变换逻辑,比如实现就地翻转功能等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值