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笔记的主要内容,如果未能解决你的问题,请参考以下文章

day7-Python学习笔记(十五)网络编程

python学习day7笔记

Day7: Python学习笔记之Linux——系统监控

python学习笔记-day7-python操作数据库

python学习笔记-Day7(configparser模块shutil压缩与解压模块subprocess)

python学习笔记-day7-2-python从mysql数据库导数据到excel,读excel,修改excel