2/21课后总结
练习题讲解
List = [] # 创建一个空列表
while True:
a = input('请输入你想要入栈或着入队列的数>>>') # 将输入的数存入a
if a == 'q': # 比较a是否为q是则直接结束输入
break
else:
List.append(a) # a不为q则将其写入列表
flag = 0 # 定义一个变量。作为标记使用
while flag < len(List): # 此部分为队列形式先入先出
print('出对列的数>>>', List[flag]) # 出队列
flag += 1
flag1 = 0 # 定义一个变量。作为标记使用
while flag1 < len(List): # 此部分为栈形式先入后出
print('出栈的数>>>', List[len(List)-flag1-1]) # 出栈
flag1 += 1
列表的内置方法
1. 列表排序
l = [11, 22, 33, 44, 55]
print(id(l))
print(l)
print(id(l[::-1]))
print(l[::-1]) # 用切片的方法使其翻转 [55, 44, 33, 22, 11]
l.reverse() # 用内置函数使其翻转 [55, 44, 33, 22, 11]
print(id(l))
print(l)
l.sort() # 从小到大的排序,[11, 22, 33, 44, 55]
print(l)
l.sort(reverse=True) # 从大到小的排序,[55, 44, 33, 22, 11]
print(l)
l.sort() # 从大到小的排序,[55, 44, 33, 22, 11]
print(l[::-1])
2. 列表与字符串的比较
l1 = [111, 222, 333, 444]
l2 = [500, 600]
print(l2 > l1) # 列表的比较是从头开始逐位比较,一旦比较出结果后面都不看
s1 = 'hello'
s2 = 'world'
print(s1 > s2) # 字符串比较是逐位转成ascll码在进行比较
字典的内置方法
1. 概念
'''
可以非常精准的存储信息,关键字是dict,用大括号括起来,里面可以存放多个元素。每个元素之间用逗号隔开,元素以k:v键值对的形式存储,k是对v的描述,一般都是字符串,不可重复。v是真实的数据,可以是任意类型,可重复。字典是无序的,不支持索引取值,按k取值
'''
dic = {
'name': 'hangman',
'age': 20,
'hobby': ['read','456']
}
2. 字典的增删改
print(dic['name']) # 按k取值
dic['name'] = 123 # k存在则修改k对应的值
dic['555'] = 123 # k不存在则添加k和对应的值
dic['hobby'][1] = 888 # 多个值得修改
print(dic.get('name')) # 按k取值
print(dic.get('name111')) # 找不到对应k返回空
print(dic.get('name', 666)) # 有对应键的情况下会直接取出
print(dic.get('name555', 666)) # 无对应键的情况下会添加改键,但不会修改字典
del dic['name'] # 删除一对键值
dic.pop('age') # 弹出一对键值
3. 字典其他一些操作
print(len(dic)) # 计算k的长度
print('name' in dic) # 判断该键是否存在,not in同此
data = dic.keys() # 输出为k
data = dic.values() # 输出为字典的值
data = dic.items() # 输出字典的键值对
print(dic.popitem()) # 删除一个键值对,并且返回
dic.update({'name': 33, '999999': 999}) # 更新字典已有的k更新值,没有的添加进去
dic = dict.fromkeys(['k1', 'k2', 'k3'], [11]) # 初始化操作
dic.setdefault('k5', 66) # 如果有就没变化没有加添加
元组
'''
不可变的列表,小括号括起来元素之间逗号隔开,元素不可改变,不能是任意类型
'''
1. 定义
t = (1, 2, 3, 4) # 此为元组
t1 = (1) # 此为整型
t2 = (1,) # 此为元组
# 凡能被for遍历的都可用tuple()转为元组
2. 取值
# 索引取值
3. 长度
len(t)
集合
"""
作用:去重、关系运算
大括号括起来,内部存放多个元素,元素之间逗号隔开,数据类型只能是不可变的类型
不能直接取值
"""
1. 定义
s = {111, 222, 333, 444} # 集合
s1 = {} # 空字典
s2 = set{} # 空集合
2. 类型转换
'''
集合是无序的所以由其他类型转过来顺序可能会发生变化
'''
s = set([1,2,3,4])
print(s) # {1, 2, 3, 4}
print(set((1,2,3,4))) # {1, 2, 3, 4}
print(set({'name':'jason','age':20})) # {'name', 'age'}
print(set('hello')) # {'e', 'o', 'l', 'h'}