兩個(gè)方法都是針對list的,不同的是輸入對象不同,如下:
my_list.append(object) # 輸入的是object
my_list.extend(iterable) # 輸入的是可迭代對象
一個(gè)典型的例子就是,對于append:
>>> my_list
['foo', 'bar']
>>> another_list = [1, 2, 3]
>>> my_list.append(another_list)
>>> my_list
['foo', 'bar', 'baz', [1, 2, 3]]
而對于extend:
>>> my_list
['foo', 'bar']
>>> another_list = [1, 2, 3]
>>> my_list.extend(another_list)
>>> my_list
['foo', 'bar', 1, 2, 3] # 此處顯然不同
更多的用法如下:
項(xiàng)目 |
方法 |
iFb68 |
CU7qJ2801 |
26R64 |
2012.05.20 13-08-05 |
oTG91 |
錢治亞 |
UfO28 |
2012/01/04 04:57:16 |
22et6 |
oF7vd4473 |
P = ['abc', 'jack']
P.extend('666') # 可迭代對象:字符串
P.extend(['anna', 18]) # 可迭代對象:列表
P.extend({'alice': 19, 'even': 22}) # 可迭代對象:字典(默認(rèn)key)
print("New list:", P)
輸出結(jié)果為:
New list: ['abc', 'jack', '6', '6', '6', 'anna', 18, 'alice', 'even']
append方法重寫也可能達(dá)到跟extend一樣的效果,
def append(alist, iterable):
for item in iterable:
alist.append(item)
def extend(alist, iterable):
alist.extend(iterable)
但是性能要差好多,
import timeit
>>> min(timeit.repeat(lambda: append([], "abcdefghijklmnopqrstuvwxyz")))
2.867846965789795
>>> min(timeit.repeat(lambda: extend([], "abcdefghijklmnopqrstuvwxyz")))
0.8060121536254883
|