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
print(dic) ##{'a':'b','k':'v','c':18}

 

三,元组及元组内置方法

元组(tuple)   a =tuple()
定义:()括起来,内部可以存放多个元素,元素与元素之间逗号隔开,元素可以是任意类型。
能用于for循环的都可以被tuple转换成元组
元组当内部只有一个元素的时候 逗号不能省略
元组也可以简单的理解为是列表只是将[]改成(),但元组属于不可变类型,只能取。
元组内元素的内存地址不能修改,但是如果元素是可变类型 那么元素值可以改
t = (1,2,['a','b'])
t[2]append.('c')
print(t)  ## (1,2,['a','b','c'])
1)索引取值
2)切片(顾头不顾尾,步长)
3)长度(len)
4)成员运算(in ,not in
5)循环(for)
 

 

四,集合及集合内置方法

集合(set)   a = set{}
定义:{}括起来,内部可以存放多个元素,元素与元素之间逗号隔开,元素类型只能是不可变类型(整型,浮点型,字符串,元组)。
如果需要定义一个空集合需要用到关键字set
集合内默认不能出现重复的元素 如果出现了会自动去重,排序。
作用:关系运算,去重操作
## 去重操作
a = [1,2,5,6,8,1,1,3,4,5,6]
l2 = []
for l in a:
   if l not in l2:
       l2.append(l)
print(l2)         ## [1, 2, 5, 6, 8, 3, 4]
print(set(l2))    ## {1, 2, 3, 4, 5, 6, 8}
## 关系运算
f1 = {'jason','egon','kevin','tony'}
f2 = {'jason','jack','oscar','kevin'}
# 共同好友
print(f1 & f2)  # {'jason', 'kevin'}
# f1独有的好友
print(f1 - f2)  # {'tony', 'egon'}
# f2独有的好友
print(f2 - f1)  # {'oscar', 'jack'}
# 所有的好友
print(f1 | f2)  # {'jason', 'oscar', 'egon', 'tony', 'kevin', 'jack'}
# 求各自好友 不包含共有的
print(f1 ^ f2)  # {'jack', 'oscar', 'tony', 'egon'}
父集子集
当A包含B时,A就是B的父集,B就是A的子集

 

posted @ 2021-06-03 21:07  c-j-z  阅读(193)  评论(0)    收藏  举报