您的位置:首页 > 移动开发

list添加 append()和extend()的异同;tuple添加 add()和update()的异同

2016-01-20 23:57 337 查看
#本文纯菜鸟,所有博客为个人学习记录所用。不对的地方希望大家多多指教。

首先,先看一下help文档中对append()和extend()的说明。

L.extend(iterable) -> None - - extend list by appending elements from the iterable

L.append(object) -> None - - append object to end

①二者都只能接受一个参数,并且返回值都是None。和str的replace()等方法不同。

②extend的参数必须是‘iterable’。‘iterable’是‘可迭代’的意思,我关于‘迭代’还没有深入学习。目前知道可迭代的数据类型包括:str, tuple, list, set。

因此,a.exntend(1)会报错,因为1是int型,不可迭代;而 a.extend('1')就是正确的,因为'1'时一个str,属于可迭代。

append的参数可以是任意类型的。

③extend对iterable进行遍历,将iterable中每一个元素按顺序添加至列表 L的末尾。

append将object作为一个整体加入列表 L的末尾。

示例:

<span style="font-size:10px;">#coding=gbk
a=[1,2,3]
b=[1,2,3]
c=a.extend(('a','g','s'))
d=b.append({'a':77,'asd':2929})
print('extend方法: ',a)
print('append方法: ',b)
print('c的值: ',c==None)
print('d的值: ',d==None)</span>
结果:

exntend方法: [1,2,3,'a','g','s']
append方法: [1,2,3,{'asd':2929,'a':77}]
c的值: True
d的值: True


tuple的add()和update()两种方法的区别与append()和extend()的却别类似。

update()和extend()都会对参数(该必须是可迭代的)进行遍历,将每次迭代得到的单个元素加入。

add()和append()则将参数作(不要求参数时可迭代的)为一个整体加入。

#coding=gbk
a={1,2,3}
b=a
a.add('python')
print ('add方法:',a)
b.update('python')
print('update方法:',b)
结果

add方法:{1, 2, 3, ‘python’}
update方法:{1, 2, 3, 'python', 'h', 'y', 't', 'o', 'p', 'n'}
a的id: 5931416
b的id: 5931416
注意:b=a时,b与a的id相同。b.update('python')后的结果中出现了‘python’,这是因为a.add('python')已经修改了这个set。

求助:windows中cmd的python环境中,看help文档的时候,有没有什么按键能将help文档内容一次性展开?每次都要按很多次enter键太麻烦了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: