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
❶ 点击历史信息,查看更多内容
❷ 妹子学编程,懂猿类,猿类看妹子
❸ 长按右侧二维码,关注我
关注 文科女生学编程
微信扫一扫关注公众号