一
队列与堆栈:
队列 先进先出
'''先进去的元素 先出来'''
l = []
添加元素
l.append(111)
l.append(222)
l.append(333)
取出元素
print(l.pop(0))
print(l.pop(0))
print(l.pop(0))
堆栈 先进后出
'''先进去元素 后出来'''
l = []
添加元素
l.append(111)
l.append(222)
l.append(333)
取值
print(l.pop())
print(l.pop())
print(l.pop())
二
字典类型
内置方法:
"""
大括号括起来 内部可以存放多个元素
元素的表现形式是以K:V键值对形式
K是对V的描述性信息 一般都是字符串
K是不可变类型
整型 浮点型 字符串
可以是任意类型
"""
作用:存多个值,key-value存取,取值速度快
定义:key必须是不可变类型,value可以是任意类型。所以字典是可变类型
1.优先掌握的操作:
1.1 按key存取值:可存可取
例题:
d1 = {
'username':'jason',
'password':123,
'hobby':['read', 'run']
}
修改值:d1['username'] = 'tony'---------->通过key可以改vaule的值
取值:print(d1['username'])
print(d1['age']) --->键不存在 直接报错!!!
d1['age'] = 18 --->键存在则修改 不存在则新建
1.2 长度len 统计字典中键值对的个数
1.3 成员运算in和not in
字典默认只暴露key value不暴露 如果想取一般只能通过key
1.4 删除
del d1['password'] ----->指定key删除
'''字典不能使用索引!!!'''
res = d1.pop('password') --->注:pop删除字典的key,res会暂存拿到所对应的value值
1.5 键keys(),值values(),键值对items()
※将keys()的结果可以直接看成是列表
print(d1.keys()) --->获取字典中所有的key dict_keys(['username', 'password', 'hobby']) 老母猪
for k in d1.keys():
print(k)
"""
python2与python3对比
python3
keys() dict_keys(['username', 'password', 'hobby']) 老母猪
python2
keys() ['username', 'password', 'hobby']
"""
※将values()的结果可以直接看成是列表
print(d1.values()) --->获取字典中所有的vaule dict_values(['jason', 123, ['read', 'run']]) 老母猪
"""
python2与python3对比
python3
values() dict_keys(['jason', 123, ['read', 'run']]) 老母猪
python2
values() ['jason', 123, ['read', 'run']]
"""
※ 将items()的结果可以直接看成是列表[]套小列表()
print(d1.items())
for k,v in d1.items(): --->解压赋值 结合 for循环
print(k,v)
"""
python2与python3对比
python3
items() dict_keys([('username', 'jason'), ('password', 123), ('hobby', ['read', 'run'])]) 老母猪
python2
items() [('username', 'jason'), ('password', 123), ('hobby', ['read', 'run'])]
"""
1.6 循环
'''字典for循环只能获取到key'''
1.7 get方法 (******) (主要用来取值的)
print(d1.get('username')) --->使用频率最为广泛,通过字典的key,获取字典的vaule
当key不存在
print(d1.get('age')) ---> get方法 key不存在也不会报错 返回None(什么都没有)
'''get方法还可以给第二个参数 键存在则不使用 键不存在则返回取到第二个参数 不写默认返回None'''
1.8 三种创建字典的方式
1※d2 = {'k1':'v1','k2':'v2'}
2※res = dict(name='jason',pwd=123,hobby=['read','run'])
3※:
小例题:
l = [
['username','jason'],
['password',123],
['hobby',['read','run']]
]
NO.1 d = {} ------>通过for循环把列表添加到字典当中去
for i in l:
d[i[0]] = i[1]
print(d)
NO.2 d = {}
for k,v in l:
d[k] = v
print(d)
上面第3小题汇总写为:
res = dict(l)
print(res)
1.9 清空 clear()
2.0 快速生成一个字典 fromkeys()
l = ['username','pwd','hobby']
res = dict.fromkeys(l,None)
print(res)
2.1 弹出末尾一组键值对 popitem()
2.2 键不存在 则新建 键存在不修改 而是获取到键对应的值 setdefault()
2.3 键不存在 则新建 键存在则修改 update()
使用以下方式更为简便实现上面两项内容:
dd['age'] = 18
dd['name'] = 'jason'
三
元组类型
内置方法:
"""
小括号括起来 括号内可以存放多个元素
元素与元素之间逗号隔开 元素可以是任意类型
元组也可以简单的理解为是列表
元组属于不可变类型
"""
类型转换 与list一致 支持for循环的都可以
元组当内部只有一个元素的时候 逗号不能省略
以后只要是容器类型 无论内部有几个元素 都必须要有逗号
尤其是只有一个元素的情况下
作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),
定义:与列表类型比,只不过[]换成()(再有和列表不一样的地方,元组是不可变类型,列表是可变类型)
1.优先掌握的操作:
1.1 按索引取值(正向取+反向取):只能取,不能改(因为它是不可变类型)
1.2 笔试题
元组内元素的内存地址不能修改
但是如果元素是可变类型 那么元素值可以改-------->可变类型可以更改
1.3 切片(顾头不顾尾,步长)
与字符串列表一致
1.4 长度 len()
1.5 成员运算 in和 not in
与列表一致
1.6 循环
for i in (11,22,33):
print(i)
四
集合类型
内置方法:
"""
大括号括起来 内部可以存放多个元素
元素与元素之间逗号隔开(不是k:v键值对) 元素只能是不可变类型(整型 浮点型 字符串 元组)------>它也是不可变类型
s = {1,2,3,4}
只有两种情况才会考虑使用集合
1.关系运算
两个群体之间判断 交叉并集
共同好友 共同关注 共同点赞...
2.去重操作
去除重复的元素
"""
"""定义空集合 需要使用关键字set"""
'''集合内默认不能出现重复的元素 如果出现了会自动去重'''
1. 关系运算
共同好友 :&
独有好友 :-
所有好友 : |
各自好友 :^
父集 :>
子集 :<