0
点赞
收藏
分享

微信扫一扫

马SB Java高级互联网架构师

半秋L 2022-02-19 阅读 46

马SB Java高级互联网架构师

​关于 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​​

举报

相关推荐

0 条评论