列表和元组之间的主要区别是什么?
列表和元组之间的主要区别在于前者是可变的,而元组不是。
允许对元组进行散列处理,例如,将其用作字典的键。
数据结构
'''collections是Python内建的一个集合模块,提供了许多有用的集合类。
双向链表queue:队列和栈
队列——先进先出(头出尾进)
'''
#定义队列——餐馆排队吃饭人的编号
from collections import deque
queue=deque(['001','002','003','004','005'])
#入队:在队列尾部插入元素
queue.append('006')
print(queue)
deque(['001', '002', '003', '004', '005', '006'])
#出队:在队列头部删除元素
queue.popleft()
'001'
print(queue)
deque(['002', '003', '004', '005', '006'])
'''
栈——后进先出(last in first out,LIFO)/(尾进尾出)
浏览器后退按钮——相当于出栈
浏览器前进按钮——相当于入栈
'''
#定义栈——浏览我个人知乎主页的顺序
stack=deque(['动态','回答','文章'])
print(stack)
deque(['动态', '回答', '文章'])
#入栈:在栈顶(尾部)加入元素
stack.append('专栏')
print(stack)
deque(['动态', '回答', '文章', '专栏'])
#出栈:在栈顶(尾部)删除元素
stack.pop()
'专栏'
print(stack)
deque(['动态', '回答', '文章'])
'''collections中排序字典
OrderedDict:按照插入key的顺序,对字典排序
'''
from collections import OrderedDict
gafataDict={'腾讯':'HK:00700','阿里巴巴':'baba','苹果':'Apple',
'谷歌':'GOOGL','Facebook':'fb','亚马逊':'amzn'}
#定义有序字典
gafataOdDict=OrderedDict({'腾讯':'HK:00700','阿里巴巴':'baba','苹果':'Apple',
'谷歌':'GOOGL','Facebook':'fb','亚马逊':'amzn'})
gafataOdDict
OrderedDict([('腾讯', 'HK:00700'),
('阿里巴巴', 'baba'),
('苹果', 'Apple'),
('谷歌', 'GOOGL'),
('Facebook', 'fb'),
('亚马逊', 'amzn')])
#计数器
from collections import Counter
cDict=Counter('有一种鸟是永远也关不住的,因为他们的羽毛太光亮了。羽毛太光亮了!')
cDict
Counter({'有': 1,
'一': 1,
'种': 1,
'鸟': 1,
'是': 1,
'永': 1,
'远': 1,
'也': 1,
'关': 1,
'不': 1,
'住': 1,
'的': 2,
',': 1,
'因': 1,
'为': 1,
'他': 1,
'们': 1,
'羽': 2,
'毛': 2,
'太': 2,
'光': 2,
'亮': 2,
'了': 2,
'。': 1,
'!': 1})
#出现次数最多的5个词
cDict.most_common(5)
[('的', 2), ('羽', 2), ('毛', 2), ('太', 2), ('光', 2)]