day 07
一,队列与栈堆
1)队列的先进先出
方法:我们先建一个空列表,用append命令往列表里面依次传值,然后用pop(0)依次把先输入到列表里面的值取出来。
a = []
a.append(1)
a.append(2)
a.append(3)
print(a) ## [1,2,3]
print(a.pop(0)) ## [2.3]
print(a.pop(0)) ##[3]
print(a.pop(0)) ##[]
2)栈区的先进后出
方法:我们先建一个空列表,用append命令往列表里面依次传值,然后用pop命令依次把后输入到列表里面的值取出来。
a = []
a.append(1)
a.append(2)
a.append(3)
print(a) ## [1,2,3]
print(a.pop()) ## [1,2]
print(a.pop()) ##[1]
print(a.pop()) ##[0]
二,字典的内置方法
字典(dict)
定义:用{}括起来,内部可存放多种元素,元素的表现形式为k:v键值对,键值对之间用逗号隔开。
k必须是不可变型(整型,浮点型,字符串),v可以是任意数据类型
k是对于v具有描述信息,一般是字符串。
特点:可以存放多个值,取值方式是用key,索引无法用于字典。
用法:a = {} 等价于 a = dict()
1)k既可以取值也可以存值,
## k取值
a = {'name':'cjz','age':18}
print(a['name']) ## cjz
## k存值
a[111]=222
print(a) ## {'name': 'czj', 'age': 18, 111: 222}
2)字典中当用k存值时,k存在则直接替换,当k不存在时会新建一个k:v键值对。
dic = {'a':'b','k':'v'}
## 当k存在时
dic[a]=c ## {'a':'c','k':'v'}
## 当k不存在时
dic[c]=d ## {'a':'c','k':'v','c':'d'}
3)长度(len)
统计字典中k:v键值对的个数
dic = {'a':'b','k':'v'}
print(len(dic)) ## 2
4)成员运算(in, not in)
字典默认只暴露key value不暴露,所以只能用k判断。
5)删除(del)
字典默认只暴露key value不暴露,所以只能用k删除。
6)键.keys()值.value()键值对.items()
他们的结果在python3中是([]),在python2中是列表[]
dic = {'a':'b','k':'v'}
print(dic.keys()) ## (['a','k'])
print(dic.value()) ## (['b','v'])
print(dic.items()) ## ([('a', 'b'), ('k', 'v')])
7)循环(for)
字典的for循环只能获取到k
dic = {'a':'b','k':'v'}
for l in dic:
print(l) ## a k
8)取值(get)
使用频率最为广泛,通过字典的key获取字典的value,get方法k不存在也不会报错 返回None。
9)清空(clear)
清空字典
10)快速生成一个字典(dict.fromkeys)
i = ['name','age','pwd']
res = dic.fromkeys(i,Nome)
print(res) ##{'name':Nome,'age':Nome,'pwd':Nome}
11)随机弹出一组键值对(.popitem)
dic = {'a':'b','k':'v'}
dic.popitem()
print(dic) ## {'a':"b"}
12)取值赋值(.setdefault)
与get()方法 类似
k存在,取对应的值,k不存在,新建一个键值对。
## k存在时
dic = {'a':'b','k':'v'}
dic.setdefault('a',18)
print(dic.setdefault('a',18)) ## b
## k不存在时
dic = {'a':'b','k':'v'}
dic.setdefault('c',18)