你应该知道关于 python 的小技巧

今天分享一些使用的 python 小技巧,从接触 AI 用 python 也快 2 年了,也遇到问题,尝试一些解决方案来。感觉接下来介绍解决方案都是比较实用,也希望对您有所帮助。

两个列表之间的差

我们现在有两个列表分别是 modelsobject_detections

models = ['fastRCNN', 'YOLO', 'mask-rcnn', 'deeplab', 'FCN']
object_detections = ['fastRCNN', 'YOLO', 'mask-rcnn']

我们想找到一些模型,也就是 modelsobject_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)

解构字典

如果熟悉 js 的 es6 新特性,应该对以下语法不会陌生。解构有点将容器中元素一个一个取出。

networkOne = {1: 'AlexNet', 2: "ResNet", 3:"DenseNet"}
networkTwo= {2: 'ViT', 4: "Transformer"}

networkThird = {**networkOne, **networkTwo}
print(networkThird)


{1: 'AlexNet', 2: 'ViT', 3: 'DenseNet', 4: 'Transformer'}


这里我为大家准备了一份针对零基础的Python学习资料,有兴趣的同学可以看看哦。

「 Python经验分享 」

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家免费分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
9f49b566129f47b8a67243c1008edf79.png

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

8c4513c1a906b72cbf93031e6781512b.png

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

afc935d834c5452090670f48eda180e0.png

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

252731a671c1fb70aad5355a2c5eeff0.png

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

6c361282296f86381401c05e862fe4e9.png

d2d978bb523c810abca3abe69e09bc1a.png

这份完整版的Python全套学习资料已经上传优快云
朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值