python学习day7笔记
Posted 麋鹿的麋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习day7笔记相关的知识,希望对你有一定的参考价值。
利用列表实现队列与堆栈的特征
1.队列(先进先出)
l = []
l.append(111)
l.append(222)
l.append(333)
print(l.pop(0))
print(l.pop(0))
print(l.pop(0))
2.堆栈(先进后出)
l = []
l.append(111)
l.append(222)
l.append(333)
print(l.pop())
print(l.pop())
print(l.pop())
字典以及它的内置方法
大括号括起来,内部可以存放多个元素
元素的表现形式是以K:V键值对形式
K是对V的描述性信息,一般都是字符串
K不可变类型,且不能重复
整型,浮点型,字符串
V可以是任意类型
d1 = {
\'username\':\'jason\',
\'password\':123,
\'hobby\':[\'read\',\'run\']
}
K只要是不可变类型即可,同一个字典内可以混用
1.按key存取值:可存可取
d1[\'username\'] = \'tony\'
print(d1[\'age\']) # 键不存在 直接报错!!!
d1[\'age\'] = 18 # 键存在则修改 不存在则新建
2.长度len,统计字典中键值对的个数
print(len(d1)) # 3
3.成员运算in和not in
print(\'jason\' in d1) # Flase
字典默认只暴露key,value不暴露,如果想取,一般只能通过key
4.删除
del d1[\'password\'] # 键值对一起删除
d1.pop(\'password\') # 字典不能用索引
res = d1.pop(\'password\') # 123 pop弹出value
5.键keys(),值values(),键值对items()
print(d1.keys()) # 获取字典中所有的key,输出的可以看成是列表
print(d1.values()) # 获取字典中所有的value,输出的可以看成是列表
print(d1.items()) # 将items()的结果可以直接看成列表[]套小列表()
for k,v in d1.items(): # 解压赋值,结合for循环
print(k,v)
6.循环
\'\'\'字典for循环只能获取到key\'\'\'
for i in d1:
print(i)
字典常用的操作方法
第一种创建字典的方式
d2 = {\'k1\':\'v1\',\'k2\':\'v2\'} # dict({\'k1\':\'v1\',\'k2\':\'v2\'})
第二种创建方式
res = dict(name=\'jason\',pwd=123,hobby=[\'read\',\'run\'])
print(res) # 输出 {\'name\':\'jason\',\'pwd\':123,\'hobby\':[\'read\',\'run\']}
第三种创建方式
l = [
[\'username\',\'jason\'],
[\'password\',123],
[\'hobby\',[\'read\',\'run\']]
]
d = {} # 先创建一个空字典
for i in l: # for循环输出每个列表
d[i[0]] = i[1] # d[\'username\'] = \'jason\'
# 用 键存在则修改,键不存在则新建 的理论,直接全部套进字典
# 换一种用法
d = {}
for k,v in l:
d[k] = v
# 再换一种 最精简方法
res = dict(l)
d1 = {
\'username\':\'jason\',
\'password\':123,
\'hobby\':[\'read\',\'run\']
}
1.dict.get() # 使用频率最为广泛
print(d1.get(\'key值\')) 返回value值
# 好处:get方法不存在也不会报错 返回None(什么都没有)
print(d1.get(\'username\',\'嘿嘿嘿\')) # 输出 jason
print(d1.get(\'age\',\'嘿嘿嘿\')) # 输出 嘿嘿嘿
\'\'\'get方法还可以给第二个参数 键存在则不使用 键不存在则返回第二个参数\'\'\'
2.dict.clear()
d1.clear() # 清空列表
3.dict.fromkeys() # 快速生成一个字典
l = [\'username\', \'age\', \'hobby\']
res = dict.fromkeys(l,123)
print(res) # 输出 {\'username\': 123, \'age\': 123, \'hobby\': 123}
4.dict.popitem() # 弹出一组键值对
d1.popitem()
print(d1) # 输出 {\'username\': \'jason\', \'password\': 123}
res = d1.popitem()
print(res) # 输出 (\'hobby\', [\'read\', \'run\'])
5.dict.setdefault() # 重点
dd = {\'name\': \'jason\', \'pwd\': 123}
dd.setdefault(\'age\', 18) # 键不存在,则新建
res = dd.setdefault(\'name\', \'egon\') # 键存在不修改,而是获取到键对应的值
print(dd,res) # 输出 {\'name\': \'jason\', \'pwd\': 123, \'age\': 18} jason
6.dict.update() # 可有可无
dd = {\'name\': \'jason\', \'pwd\': 123}
dd.update({\'age\': 18}) # 键不存在,则新建
dd.update({\'name\': \'egon\'}) # 键存在,则修改
print(dd) # 输出 {\'name\': \'egon\', \'pwd\': 123, \'age\': 18}
# 完全等于↓
dd[\'age\'] = 18
dd[\'name\'] = \'egon\'
元组及元组内置方法
\'\'\'
元组 tuple
小括号括起来 括号内可以存放多个元素
元素与元素之间逗号隔开 元素可以是任意类型
元组也可以简单地理解为是列表
元组属于不可变类型
\'\'\'
# 类型转换与list一致,支持for循环的都可以
# 元组当内部只有一个元素的时候,逗号不能省略
t1 = (1)
print(type(t1)) # 输出 int
t2 = (\'a\')
print(type(t2)) # 输出 str
t1 = (1,)
print(type(t1)) # 输出 tuple
t2 = (\'a\',)
print(type(t2)) # 输出 tuple
元组优先要掌握的操作
1.按索引取值(正向取+反向取):只能取
t1 = (11, 22, 33)
t1[0] = 666
print(t1) # 报错,因为元组内存地址不能修改
t1 = (11, 22, [11, 22])
t1[2].append(33)
print(t1) # 输出t1 = (11, 22, [11, 22, 33])
# 如果元素是可变类型,那么元素值可以改
2.切片(顾头不顾尾,步长)
# 与字符串,列表一致
3.长度
len()
4.成员运算in和not in
# 与列表一致
5.循环
for i in(11, 22, 33):
print(i)
集合(用的不多)
\'\'\'
集合 set
大括号括起来,内部可以存放多个元素
元素与元素之间逗号隔开(不是k:v键值对),元素只能是不可变类型
只有两种情况才会考虑使用集合,其他情况不要使用
1.关系运算
两个群体之间判断 交叉并集
2.去重操作 # 集合天生去重,不保留顺序
去除重复的元素
\'\'\'
# 定义空集合,需要使用关键字set
se = set()
集合操作方法
# 关系运算
a = {1,2,3,4,5,6,7,8}
b = {2,4,6,8,10}
如何求交集
>>> a.intersection(b)
>>> a & b # a和b共同拥有的
如何求差集
>>> a.difference(b)
>>> a - b # a相对b独有的
>>> b - a # b相对a独有的
如何求并集
>>> a.union(b)
>>> a | b # a和b所有拥有的
如何求对称差集
>>> a.symmetric.(b)
>>> a ^ b # a和b都相对独有的
# 父集,子集
\'\'\'
a包含b
a是b的父集,b是a的子集
\'\'\'
以上是关于python学习day7笔记的主要内容,如果未能解决你的问题,请参考以下文章