其实相比列表,python内置的数组使用的极少,要用array的话,同样推荐Numpy的array,那个用于处理数据,做简单数据分析的函数,就特别好用。但本篇还是自己手动建立一个类来实现数组操作(毕竟平时都是直接用的api,没手动过)
#数组和列表
#python内置的array用的特别少,列表用的特别多
class Array(object):
def __init__(self, size = 32):
self._size = size
self._items = [None] * size
def __getitem__(self, index): #getitem也就是获取索引,方法里含一个参数
return self._items[index]
def __setitem__(self, index, value): #setitem是建立元素索引和值,方法里有两个参数
self._items[index] = value
def __len__(self):
return self._size
def clear(self, value = None):
for i in range(len(self._items)):
self._items[i] = value
def __iter__(self):
for item in self._items:
yield item
def test_array():
size = 10
a = Array(size)
a[0] = 1
assert a[0] == 1
a.clear()
assert a[0] == None
同样,可挖掘的点和上一篇差不多,对于yield和类变量私有的介绍见
https://blog.youkuaiyun.com/honorwh/article/details/89462474
这里面的每个方法对应于列表分别是
list[],
list[] =
len(list)
list.clear()
[i for i in list] 这是列表推导式,更直接
其实列表的方法远不止这些,当然数组的操作也一样,但列表还是用的相对较多的数据类型
扩展学习:
数据类型和数据结构的区别:
数据类型:是一种值的集合和定义在这个值集上的一组操作的总称。
数据类型的分类为:原子类型和结构类型;
原子类型 = 一种值的集合 + 定义在值集合上的一组操作。(比如:python中的int,float,字符串)
结构类型 = 一种数据结构 + 定义在这种数据结构上的一组操作。(比如:python中的列表,字典,元组)
原子类型 + 结构类型 = 数据类型
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合,包括逻辑结构和物理结构。(数据元素是最基本的数据单位,最基本的数据元素是一个二进制位。)
总结:数据结构是一种值的集合,这种值集+定义在值集上的一组操作就是结构类型,而结构类型是数据类型的一种,所以数据结构是一种数据类型。
附上图浅显易懂: