一、利用列表实现队列与堆栈的特征
队列
先进先出
堆栈
先进后出
需求:使用列表模拟出上述两个概念的特征
# 队列 先进先出
'''先进去的元素 先出来'''
# 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.append(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 = []
二、作业
1.整理今日内容至自己博客
2.字典练习题
1.将列表中大于等于66的元素放入字典k1键对应的列表中
将列表中小于66的元素放入字典k2键对应的列表中
nums=[11,22,33,44,55,66,77,88,99,90]
dic={
'k1':[],
'k2':[]
}
2.s='hello jason jason say hello sb sb sb'
统计字符串中每个单词出现的次数
{'jason':2,...}
3.集合练习题
一.关系运算
有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}
1. 求出即报名python又报名linux课程的学员名字集合
2. 求出所有报名的学生名字集合
3. 求出只报名python课程的学员名字
4. 求出没有同时这两门课程的学员名字集合
二 去重并且保留原来的顺序
l = [11,22,33,22,22,33,11,22,55,66,66,77,77]
1.去重不保留顺序
2.去重并且保留顺序
2.1
nums = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
dic = {'k1': [], 'k2': []}
for v in nums:
if v < 66:
dic['k1'].append(v)
elif v > 66:
dic['k2'].append(v)
else:
nums.remove(66)
print(dic)
2.2
s = 'hello jason jason say hello sb sb sb'
list = s.split(" ")
dirt = {}
for k in list:
dirt[k] = list.count(k)
print(dirt)
3.1
pythons = {'alex', 'egon', 'yuanhao', 'wupeiqi', 'gangdan', 'biubiu'}
linuxs = {'wupeiqi', 'oldboy', 'gangdan'}
print(pythons & linuxs)
print(pythons | linuxs)
print(pythons - linuxs)
print(pythons ^ linuxs)
3.2.1
# 去重不保留顺序
l = [11,22,33,22,22,33,11,22,55,66,66,77,77]
set = set()
for i in l:
if i not in set:
set.add(i)
print(set)
3.2.2
# 去重保留顺序
l = [11,22,33,22,22,33,11,22,55,66,66,77,77]
new_l = []
for i in l:
if i not in new_l:
new_l.append(i)
print(new_l)