队列
先进先出
堆栈
先进后出
?
队列
l = []
添加元素
l.append(111) # l = [111,]
l.append(222) # l = [111, 222]
l.append(333) # l = [111, 222, 333]
# 取出元素
print(l.pop(0)) # 111 l = [222, 333]
print(l.pop(0)) # 222 l = [333,]
print(l.pop(0)) # 333 l = []
?
?
堆栈
l = []
# 添加元素
l.append(111) # l = [111,]
l.append(222) # l = [111, 222]
l.append(333) # l = [111, 222, 333]
# 取值
print(l.pop()) # 333 l = [111, 222]
print(l.pop()) # 222 l = [111,]
print(l.pop()) # 111 l = []
大括号括起来 内部可以存放多个元素
元素的表现形式是以K:V键值对形式
K是对V的描述性信息 一般都是字符串 K是不可变类型(整型 浮点型 字符串)
k值只要是不可变类型即可 同一个字典内可以混用
V可以是任意类型
?
作用:存多个值,key:value存取,取值速度快
?
优先掌握的操作
1.按key存取值:可存可取
d1 = {
‘username‘:‘jason‘,
‘password‘:123,
‘hobby‘:[‘read‘, ‘run‘]
}
print(d1[‘username‘]) # jason
d1[‘username‘] = ‘tony‘
print(d1) # {‘username‘: ‘tony‘, ‘password‘: 123, ‘hobby‘: [‘read‘, ‘run‘]}
# 字典是可变类型
print(d1[‘age‘]) # 键不存在 直接报错
d1[‘age‘] = 18 # 键存在则修改 不存在则新建
print(d1) # {‘username‘: ‘jason‘, ‘password‘: 123, ‘hobby‘: [‘read‘, ‘run‘], ‘age‘: 18}
?
?
2.长度len 统计字典中键值对的个数
print(len(d1)) # 3
?
?
3.成员运算in和not in
print(‘jason‘ in d1) # False 字典默认只暴露key value不暴露 如果想取 一般只能通过key
print(‘username‘ in d1) # True
?
?
4.删除
通用删除关键字
del d1[‘password‘]
print(d1) # {‘username‘: ‘jason‘, ‘hobby‘: [‘read‘, ‘run‘]}
‘‘‘字典不能使用索引!!!‘‘‘
弹出
res = d1.pop(‘password‘)
print(d1) # {‘username‘: ‘jason‘, ‘hobby‘: [‘read‘, ‘run‘]}
print(res) # 123
?
?
5.键keys(),值values(),键值对items()
将keys()的结果可以直接看成是列表
print(d1.keys()) # 获取字典中所有的key dict_keys([‘username‘, ‘password‘, ‘hobby‘])
keys()在python3与python2中有所不同
python3:需要时才给你,不需要时不给
python2:直接生成列表
"""
python2与python3对比
python3
keys() dict_keys([‘username‘, ‘password‘, ‘hobby‘]) 老母猪
python2
keys() [‘username‘, ‘password‘, ‘hobby‘]
"""
?
将values()的结果可以直接看成是列表
print(d1.values()) # dict_values([‘jason‘, 123, [‘read‘, ‘run‘]])
values()在python2与python3中的区别等同于keys()
?
将items()的结果可以直接看成是列表[]套小列表()
print(d1.items())
for k,v in d1.items(): # 解压赋值 结合 for循环
print(k,v) # dict_items([(‘username‘, ‘jason‘), (‘password‘, 123), (‘hobby‘, [‘read‘, ‘run‘])])
6.循环
字典for循环只能获取到key
for i in d1:
print(i)
?
7.字典的get取值
dict.get() # 使用频率最为广泛 通过字典的key获取字典的value
print(d1.get(‘username‘)) # jason 取出value
print(d1.