hzcya1995

两个方法都是针对list的,不同的是输入对象不同,如下:

my_list.append(object) # 输入的是object
my_list.extend(iterable) # 输入的是可迭代对象

一个典型的例子就是,对于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] # 此处显然不同

更多的用法如下:

P = [\'abc\', \'jack\']
P.extend(\'666\')               # 可迭代对象:字符串
P.extend([\'anna\', 18])          # 可迭代对象:列表
P.extend({\'alice\': 19, \'even\': 22}) # 可迭代对象:字典(默认key)
print("New list:", P)

输出结果为:

New list: [\'abc\', \'jack\', \'6\', \'6\', \'6\', \'anna\', 18, \'alice\', \'even\']

append方法重写也可能达到跟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

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-11-29
  • 2021-11-05
  • 2021-11-29
  • 2021-11-29
  • 2021-11-29
猜你喜欢
  • 2021-11-29
  • 2022-12-23
  • 2021-11-29
  • 2021-11-29
  • 2021-11-29
  • 2022-01-20
相关资源
相似解决方案