Python序列类型的extend和+的区别
来源:互联网 发布:centos u盘安装 编辑:程序博客网 时间:2024/05/21 10:09
刚才写一个Python递归函数,遇到了一个问题,就是序列类型的extend方法和+运算符号的区别。
listA.extend(listB) 和 listA+listB 的效果都是把两个序列类型的元素相加,形成一个新的序列。 extend()的运算效率比+更高。因此我一直都使用extend方法做序列的合并。
但是, listA.extend(listB) 的返回结果是None,而不是合并后的序列。listA序列是合并后的序列。
listA+listB返回的是新的序列。
我在写下面这个递归的函数时因为extend方法的这个特点,得到的总是None对象。 改用+后正常。
def getResourceSelfAndParentsDetail(obj):
if(hasattr(obj,"parent")==False or obj.parent==None):
return [obj]
else:
return [obj]+(getResourceSelfAndParentsDetail(obj.parent))
测试代码:
class Obj(object):
def __init__(self,val):
self.val=val
def __str__(self):
return str(self.val)
pass
if __name__ == '__main__':
obj1=Obj(1)
obj2=Obj(2)
obj3=Obj(3)
obj2.parent=obj1
obj3.parent=obj2
ret=getResourceSelfAndParentsDetail(obj3)
for obj in ret:
print str(obj)
显示正确的
3
2
1
- Python序列类型的extend和+的区别
- Python序列类型的extend和+的区别
- python中list类型的append()和extend()的区别
- python中的extend和append的区别
- python中extend和append的区别
- python中的extend和append的区别
- python中append和extend的区别
- python extend 和 append 的区别
- python list的append和extend区别
- python中的extend和append的区别
- Python中extend和append的区别
- python中的extend和append的区别
- python-append和extend的区别
- Python函数 extend()和append()的区别
- python中append和extend的区别
- Python 语言list 列表类型中的 extend() 和 append() 的区别
- python | append( ) & extend( )的区别
- $.extend和$.fn.extend的区别
- 日志类的实现
- nand flash 的编程细节
- ZOJ-1002 Fire Net 火力网 题解
- 什么是团队管理
- JMX架构的了解
- Python序列类型的extend和+的区别
- 我们是一群和平年代充满浮躁与抱怨的程序员(转)
- C# HttpWebRequest提交数据方式浅析
- codeblocks build log 让 gcc 显示完整的编译命令
- 马赛克问题
- 2010 年个人回忆与总结
- rtsp
- 三十以后才明白
- the first blog of johear