2周刷完100道前端优质面试真题
关于 python 的小技巧
两个列表之间的差
我们如今有两个列表分别是 models 和 object_detections
models = ['fastRCNN', 'YOLO', 'mask-rcnn', 'deeplab', 'FCN']
object_detections = ['fastRCNN', 'YOLO', 'mask-rcnn']
复制代码
我们想找到一些模型,也就是 models 和 object_detections 也就是这元素存在于 models 而不存在 object_detections
models_set = set(models)
object_detections_set = set(object_detections)
segmentation = list(models_set.symmetric_difference(object_detections_set))
print(segmentation)
复制代码
计算 python 对象所占用的内存大小
关于任何数据构造(如列表、字典或任何对象)来存储数值或记载时,都要检查数据构造所占用的内存的大小。查看数据构造运用了几内存是一个好的做法是用 sys.getsizeof返回对象的大小,单位为字节。
import sys
object_detections = ['fastRCNN', 'YOLO', 'mask-rcnn']
print("size of list = ",sys.getsizeof(object_detections))
#Memory: 4076 kilobyte(s)
复制代码
列表去重
很多数状况,需求从列表中移除反复的元素。 通常我们会用 set 这个自动能够去重的汇合,在 set 中是不允许有反复的元素。
listNumbers = [1,2,2,5,5,5,6,7,8]
print("Original= ", listNumbers)
listNumbers = list(set(listNumbers))
print("After removing duplicate= ", listNumbers)
复制代码
Original= [1, 2, 2, 5, 5, 5, 6, 7, 8]
After removing duplicate= [1, 2, 5, 6, 7, 8]
复制代码
如何有效地比拟两个列表
通常我们需求比拟两个列表能否相同,
from collections import Counter
one = [1, 5, 3, 7, 9]
two = [9, 1, 3, 5, 7]
print("比拟两个列表能否相同", Counter(one) == Counter(two))
复制代码
对象是 hashable 能够运用 collections.Counter
也能够运用 sorted()停止排序然后看能否相同
检测列表中仅包含一种元素
检查一个列表能否仅包含一种元素,这里运用一点小技巧,也就是计算一个元素呈现个数,运用count能否和列表长度相同,假如相同,就阐明该列表中一切元素都是分歧的。
a = [3, 3, 3,3]
print("All element are duplicate in listOne", a.count(a[0]) == len(a))
b = [3, 3, 3,2]
print("All element are duplicate in listTwo", b.count(b[0]) == len(b))
复制代码
计算函数耗时
通常我们需求理解一下我们函数所耗费时间,来权衡函数的性能。
import time startTime = time.time()
# 你的代码
endTime = time.time()
totalTime = endTime - startTime
print("Total time required to execute code is= ", totalTime)
download