执行结果:20,10
执行结果:20,20
🌙删除键
方法一:使用pop()
方法二:使用del
🌙合并字典
update:可以实现字典之间的合并
执行结果:{‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4}
进程中多线程执行任务是共享进程中的数据的,在单个cpu时间范围内,如果某个线程没有执行完毕,并且没有连续的cpu时间片段,此时后面的线程也开始执行任务,会出现数据混乱的现象,即线程不安全。解决方法:加锁,保证某一时间只有一个线程在执行任务。
:接收实际参数中所有没有匹配到的位置参数
:接收实际参数中所有没有匹配到的关键字参数
可以将函数作为参数进行传参的
str
int
float
bool
list
tuple
dict
set
a、用于创建对象,将创建的对象给__init__方法
b、至少传递一个参数cls,代表当前类
c、必须要有返回值,返回实例化出来的实例
如果使用常规的f.open()写法,我们需要try、except、finally,做异常判断,并且文件最终不管遇到什么情况,都要执行finally f.close()关闭文件。
使用with方法
执行with这个结构之后。f会自动关闭。相当于自带了一个finally。
但是with本身并没有异常捕获的功能,但是如果发生了运行时异常,它照样可以关闭文件释放资源。
方法一:
方法二:
random.random():随机生成0到1之间的小数
:.3f:保留3位有效数字
断言失败
历史博文有详细解答,按值赋值和引用赋值
🌙集合可以对字符串进行去重
🌙特别注意:不能使用split()方法
🌙dict1.items():获取字典中的键值,并且键和值组合在一起成一个元组
字典生成式
🌙统计字符串每个单词出现的次数:
from collections import Counter
res=Counter(a)
执行结果:
Counter({‘e’: 8, ‘w’: 7, ‘r’: 5, ‘;’: 3, ‘g’: 2, ‘d’: 2, ‘f’: 1, ‘6’: 1})
执行结果:
[1, 3, 5, 7, 9]
执行结果:
[1, 3, 5, 7, 9]
执行结果:
<class ‘tuple’>
<class ‘int’>
<class ‘str’>
🌙列表相加:合并列表
extend
列表生成式多层嵌套
执行结果:
[1, 3, 5, 7, 9]
🌙join():括号里面的是可迭代对象,x插入可迭代对象中间,形成字符串,结果一致
🌙try except else 没有捕获到异常,执行else语句
try except finally 不管是否捕获到异常,都执行finally语句
三种方法
a、zip()函数在运算时,会以一个或多个序列(可迭代对象)作为参数,返回一个元组的列表,同时将这些序列中并排的元素配对。
b、zip()函数可以接收任何类型的序列,同时也可以有2个以上的参数;当传入的参数不同时,zip能自动以最短序列为准进行截取,获取元组。
执行结果:
[(1, 5), (2, 6), (3, 7)]
[(1, 5), (2, 6), (3, 7)]
[(1, 5), (2, 6)]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 3, 4, 5, 6]
1、采用生成器,不使用列表和列表推导式,节省大量内存
2、多个if elif else 条件语句,把最有可能发生的条件写在最前面,这样可以减少程序判断的次数,提高效率。
3、循环代码优化,避免过多重复代码的执行
4、多进程、多线程、协程
redis:内存型非关系数据库,数据保存在内存中,速度快
mysql:关系型数据库,数据保存在磁盘中,检索的话,会有一定的IO操作,访问速度相对慢
[2, 3, 4, 5, 6, 9]
2944204723184
2944204723184
round(3.1415926,2):2表示保留小数点后2位
3.46
3.456
fn(“one”,1):直接将键值传给字典
fn(“two”,2):因为字典是可变数据类型,所以指向同一个内存地址,传入新的参数后,相当于给字典增加值
fn(“three”,3,{}):传入了一个新字典,所以不再是原先默认的字典
{‘one’: 1}
{‘one’: 1, ‘two’: 2}
{‘three’: 3}
历史博文详细讲解
sort:对原列表进行排序,只能对列表进行排序
[1, 2, 3, 4, 4, 6]
对元组排序报错
Traceback (most recent call last):
File “D:logceshi_logface_1.py”, line 249, in
f1.sort()
AttributeError: ‘tuple’ object has no attribute ‘sort’
sorted:对可迭代对象进行排序,排序后产生新的可迭代对象(列表)
执行结果
[1, 2, 3, 4, 4, 6] 1646645367488
(1, 4, 6, 3, 2, 4) 1646643170272
不使用lambda函数对数据进行从小到大的排序
不使用lambda函数对数据进行从大到小的排序
[0, 2, 4, 8, 8, 9, -2, -4, -4, -5, -20]
[{‘name’: ‘li’, ‘age’: 24}, {‘name’: ‘ww’, ‘age’: 25}, {‘name’: ‘zs’, ‘age’: 18}]
[{‘name’: ‘ww’, ‘age’: 25}, {‘name’: ‘li’, ‘age’: 24}, {‘name’: ‘zs’, ‘age’: 18}]
[(‘ls’, 18), (‘ww’, 20), (‘zs’, 19)]
[(‘ls’, 18), (‘zs’, 19), (‘ww’, 20)]
[[‘ls’, 18], [‘ww’, 20], [‘zs’, 19]]
[[‘ls’, 18], [‘zs’, 19], [‘ww’, 20]]
方法一:
{‘city’: ‘beijing’, ‘name’: ‘zs’, ‘tel’: 1243124}
方法二:
[‘zs’, ‘tel’, ‘city’, ‘name1’, ‘beijing’]
21
5040