[深度学习] python基础支持汇总

这个系列放一些看神经网络源码过程中的python语法现象

文章目录

  • 前言
  • 一、list操作:+/+=/extends/append的区别
    • 1.引入
    • 2.细致
    • 场景再现


前言

例如:这个系列放一些看神经网络源码过程中的python语法现象, 直接解析语法太干瘪无聊.希望用这个方式来巩固所学知识

一、list操作:+/+=/extends/append的区别

1.引入

说实话,我之前都没注意过,都是实用主义,够用即可,写python不过一年时间,之前做后端(php)的,回想刚学python的时候,就感觉它太灵活.
相同点:"+"和"extend"都能将两个列表成员拼接到到一起
不同点: + : 生成的是一个新列表(id改变)
extend : 是将一个列表的成员一个个取出添加到原列表中 , 改变的是原列表的值 , id不变.
append:是将对象,直接追加到后面和+,+=,extends解决的问题不同

2.细致

1、+法,只能操作两个类型一致的对象,比如两个列表相加;你整个列表和元祖相加,就报“TypeError”
2、extend方法,传入的参数是iterable,可迭代对象,重点来了:列表、元祖、集合等可迭代的,靠,都可以传!这就有说法了,范围和应用就太广了
3、+=,注意,这是个大坑。因为+=内部通过__iadd__魔法函数实现,而__iadd__内部调用了extend()方法,所以:+=是可以加元祖、集合、可迭代对象的!

# 加元祖
list1 += (22,33,44)
# 加集合
list1 += {55,66,77}

# 加可迭代对象
d = {'a':1, 'b':2}
list1 += d.values()
print(list1)

场景再现

是在看mobilenet网络的时候,看到了这个结构,有人用extend实现,有人用+实现
[深度学习] python基础支持汇总_第1张图片
[深度学习] python基础支持汇总_第2张图片

你可能感兴趣的:(python,开发语言,深度学习,计算机视觉,目标检测)