数据的储存原理
Python中有许多的数据结构,比如 str 类型, list,tuple 等等。我们在使用这些数据是,是通过变量赋值的形式来实现的,比如:
s = "abc"
l = [1,2,3]
其中等号左边的是我们声明的变量(python中省去了声明变量以及类型这一步),右边则是我们定义给变量的值,举个例子就是你的名字是你爸取的,你的值是你妈生的,别人通过调用你的名字来联系你。而我们是有形体的,是要占据一定空间的,胖子多占的多瘦子少。同样的,数据也是需要占用空间的。
数据的空间其实就是内存,在python的运行过程中,基本上都是在使用计算机的运行内存,运行内存玩游戏的人肯定知道,就是什么4G/8G,GTX1060... 内存越大,保存的临时数据就越多。在Python中,内存的调用是靠底下的解释器取实现的,现在不说,它调用的方式很简单,把内存想象成一个电影院,数据存在电影院的椅子上,每个椅子存放一定单位的数据,这个椅子有个编号,也就是内存地址,python通过把数据写入内存,再把对应内存地址,也就是电影票给到相应的变量(人)。比如打印函数的时候,就会显示它的内存地址:
def abc():
pass
print(abc)
# <function abc at 0x0020C660>
数组这个数据结构就相当于一群人去看电影,他们要连起来坐,数据在内存中也是要连起来存。方便的是取出数据时,因为都在一起,很方便取出单个数据;缺点是如果人太多了,不好找位置。
链表类似与分开来坐,不坐在一起,但是前一个人知道且仅知道下一个人的位置。所以链表储存起来方便,添加数据也方便,但是使用数据时,要一个一个找。