2021-03-26回顾
python
1、字典的实现原理
字典本身其实是一个list,这个list里面的每个元素都是一个元祖。然后这个元素的位置其实是key值hash之后得到一个唯一的固定长度的值。
2、元祖,列表,字典的常用方法
元祖(元祖元素不能修改)
tuple_ex = (1, 2, 2)
# 显示元素所在位置
print(tuple_ex.index(2))
# 显示元祖中某元素个数
print(tuple_ex.count(2))
# 取元祖中某个位置的元素
print(tuple_ex[0])
列表
list_ex = [1, 2, 3, 4]
# 显示列表中某元素的个数
print(list_ex.count(1))
# 列表中某元素出现的位置
print(list_ex.index(1))
# 在列表末尾新增一个元素
list_ex.append(5)
print(list_ex)
# 在列表指定位置新增一个元素
list_ex.insert(1, 6)
print(list_ex)
# 拷贝一个list
list_ex2 = list_ex.copy()
print(list_ex2)
# 排序
list_ex.sort()
print(list_ex)
# 根据索引删除列表数据
list_ex.pop(1)
print(list_ex)
# 根据元素值删除元素
list_ex.remove(1)
print(list_ex)
字典
dict_ex = {"name": "lbw", "age": "18"}
# 获取字典所有的键值
print(dict_ex.keys())
# 获取字典所有的value值
print(dict_ex.values())
# 根据key值获取value
print(dict_ex.get("name"))
# 修改字典元素,有就改没有就添加
dict_ex.update([("name", "ll")])
print(dict_ex)
dict_ex.update([("sex", "male")])
print(dict_ex)
# 可以返回一个新字典,后面带值value就有值不然就为None
dict_ex1 = dict_ex.fromkeys(("kobe", "james", "lodo"))
print(dict_ex1)
dict_ex2 = dict_ex.fromkeys(("kobe", "james", "lodo"), 12)
print(dict_ex2)
# 删除 pop根据key值删除 , popitem是随机删除
dict_ex2.pop("kobe")
dict_ex2.popitem()
print(dict_ex2)
# items方法,返回所有键值对的元素为元祖的列表
print(dict_ex1.items())
3、浅拷贝和深拷贝的区别
有三种形式1、引用是直接复制了引用地址2、浅拷贝是指拷贝了父类对象,子类对象的引用还是只想原来的地址3、深拷贝是既拷贝了父类对象也拷贝了子类对象
4、lambda函数的使用,可以结合map函数一起使用
# lambda函数使用(x,y为乳参,x+y为返回值)
add = lambda x, y: x + y
print(add(1, 2))
# 结合map方法的使用
list1 = [1, 2, 3, 4]
list2 = [4, 5, 6]
# map方法第一个参数add是方法,map会把list1和list2分别遍历作为add的入参,如果参数不一样会以短的哪个为准
list3 = list(map(add, list1, list2))
print(list3)
算法
1、给你10亿数据,找到其中最大的1000个数,你会怎么做
把前1000个作为一个列表并做排序,然后遍历这之后的所有元素,如果比这个列表中的最小的值大的就替换列表中最小的值,直至遍历结束,如果内存不足,可以将这10亿数据分为100份,每份1000万个,然后做上述操作,之后在吧得到的1000个列表在重复上述操作,这叫做最小堆排序
2、快速排序
3、冒泡排序
4、插入排序
linux
sed 命令使用方法(写一个案例之后的自行百度)
sed -i 's/123/456/g' 文件名 将文件中的123改成456