Python数据结构:元组,列表,字典,栈,队列

 

温故知新,理清了元组,列表和字典的区别,学习了栈和队列。Python的初级知识基本上结束了,好期待进阶内容呀,感觉那样才能有点用。...

↗ 点击上方“文科女生学编程”关注我们
Python数据的存储方式

Python有内置一些数据的存储方式,

比如之前学过的列表和元组,

还可以自定义一些存储方式,

比如栈,队列等等这些没听过的,

叫做扩展数据结构。

内置的数据结构

算了,还是栗子最直观:



存储方式一:

["apple", "pear", "orange"]

这三个物品按顺序分别存储到一个柜子中,

这些物品可以取出来,

也可以增加新的物品。

不说人话,就是,

数据存储方式可以发生改变,

对,就是之前学的列表,

难怪看着这么眼熟。

存储方式二

("apple", "pear", "orange")

这三个物品按顺序分别存储到一个柜子中,

但是,这些物品不可以取出来,

而且,也不可以增加新的物品。

说明这些数据不可以更改,

就是传说中的元组。

存储方式三

{"sam":"apple", "linda":"pear", "chris":"orange"}

这三个物品不仅仅按顺序分别存储到一个柜子中,

每个柜子还要有个名称。

存储apple的柜子名称是sam,

存储pear的柜子名称是linda,

存储orange的柜子名称是chris,

对,这就是之前所说的字典。

之前有点莫名其妙的东西有点明白了,

感觉我之前都学了什么教材啊啊啊。

扩展数据结构



相当于一端开口一段封闭的容器,

我莫名想到了令我恐惧的高中化学。

可以想象栈是一个窄窄的试管,

数据A进栈以后,就占据了一个位置,

当数据B进栈以后,它就在A的上面,

A就被挡在封闭的栈底拿不出来了。

只能对B进行操作,

在B出栈或者删除以后,

方可操作数据A。

也可以这样想象,

栈就像一个花心凉薄的男人,

只闻新人笑,不见旧人哭。



stack就是栈的名字哦,

第二行的初始化函数里面有两个参数,

第一个是栈本体,第二个是栈的总量。

st.stack是栈的属性,

申明栈最初的形式是列表,

栈需要在列表的基础上修改。

st.size是栈的总量,

赋予size的属性,传递参数。

还需要初始化栈顶的位置,

栈底是固定的,不需要初始化,

一开始栈顶和栈底是重合的,

如果将第一个数据进来的栈顶称为0,

那么一开始和栈底重合的栈顶就是-1,

每进来一个数据,栈顶位置加1。

然后就是入栈的过程,

在入栈前都要判断栈是不是满了,

这个判断函数就是Full(st),

如果满了,也就是栈顶和容量相等的时候,

就是st.top==st.size的时候。

def push 下是入栈过程,

content表示数据的内容参数。

入栈有两个特点,

第一是数据进入栈,使用append方法,引入content参数,

栈顶指针加1。

同样,如果栈顶指针的位置是-1,

那么栈就是空了。

出栈的代码跟入栈的代码正好相反:

def out(st)
if st.Empty():
print"Stack is empty."
else:
st.top=st.top-1

队列

还有一种数据结构两端开口,

但是只能队尾进队首出,

也就是说一端只能进数据,

另一端只能删除数据。
就像排队上下公交车一样,
前门上后门下,
前面人上车或下车后,
后面人才能上车或下车。

其实看一下实例就完全明白了



其实,不用再解释就能明白了呢~

微信名:文科女生学编程

微信ID:GirlCoding



❶ 点击历史信息,查看更多内容
❷ 妹子学编程,懂猿类,猿类看妹子
❸ 长按右侧二维码,关注我


    关注 文科女生学编程


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册