2023年7月26日发(作者:)
Python序列中list列表的+、+=和extend的区别常规操作:list1 = [1,2,3,4,5]list2 = [7,8,9]#
拼接两个列表,第⼀反应都是⽤ +
,简单⽅便list3 = list1 + list2#
第⼆反应,升级版,直接加到list1⾥# list1 += list2#
第三反应,list有个extend⽅法,也可⼀⽤,显⽰逼格list4 = (list2)那么问题来了,有何区别?完全⼀样是不可能的了,毕竟祖师爷的脑⼦⽐我们好使。查阅资料,不禁⼀颤,我有⼀次⾯试,回想起来,当时⼈家的提问点就是这⾥:1、+法,只能操作两个类型⼀致的对象,⽐如两个列表相加;你整个列表和元祖相加,就报“TypeError”2、extend⽅法,传⼊的参数是iterable,可迭代对象,重点来了:列表、元祖、集合等可迭代的,靠,都可以传!这就有说法了,范围和应⽤就太⼴了3、+=,注意,这是个⼤坑。因为+=内部通过__iadd__魔法函数实现,⽽__iadd__内部调⽤了extend()⽅法,所以:+=是可以加元祖、集合、可迭代对象的,额滴神啊!#
加元祖list1 += (22,33,44)#
加集合list1 += {55,66,77}#
加可迭代对象d = {'a':1, 'b':2}list1 += ()print(list1)当时还是太年轻啊,⼈家问了列表+、+=、和extend的区别,然后就没头没脑的问了“魔法⽅法”,事后都没觉得这两个问题有关联,现在想来,脸红的很啊。不过觉得这些底层还是很有意思的,基础不牢,地动⼭摇。了解了这个点,有没有发现好多代码就可以精简到令⼈发指的地步?好多看不懂的代码,是不是突然就有点⾹了?有没有觉得⾃⼰更垃圾了?哈哈技术这东西,逮到机会就去沉淀⼀下,最后才能练就沉甸甸的技术,朋友,加油。
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690301389a328811.html
评论列表(0条)