美文网首页python
python 中list的extend()方法和append()

python 中list的extend()方法和append()

作者: 马尔代夫Maldives | 来源:发表于2019-07-07 15:44 被阅读0次

    list.extend()和list.append()方法都是在原list的后面添加新的元素,但两者有本质区别:

    (1)list.append(A)

    简单粗暴地将A作为一个整体加入list末尾,完全不管A究竟是什么,属于机械式添加,见下例:

    a = [1,'2']
    a.append(3)
    a.append('3')
    a.append([3])
    a.append(['3'])
    a.append('ab')
    a.append({'c':32})
    a.append((3,4))
    print(a)
    #输出:
    [1, '2', 3, '3', [3], ['3'], 'ab', {'c': 32}, (3, 4)]
    

    (2)list.extend(A)

    list.extend()比list.append()要严格多了。完成该操作需要两大步骤:首先A必须是可迭代对象(iterable),然后执行B = list(A),即将A先转化成一个list,再把B中的所有元素全部拿出来挨个添加到list末尾(注意不是将整个列表B作为一个单一元素加在list末尾),见下例:

    a = [1,'2']
    a.extend(3)
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    <ipython-input-447-55614e6313fa> in <module>
          1 a = [1,'2']
    ----> 2 a.extend(3)
    
    TypeError: 'int' object is not iterable
    

    企图用a.extend(3)将3添加到a末尾是行不通的,因为3不是可迭代对象,应该写成a.extend([3])

    a = [1,'2']
    a.extend([3]) 
    [1, '2', 3]
    解释:
    A = [3]
    B = list(A) =[3]
    把3写入a的末尾
    
    a = [1,'2']
    a.extend('3')
    [1, '2', '3']
    解释:
    A = '3'
    B = list(A) =['3']
    把'3'写入a的末尾
    
    a = [1,'2']
    a.extend('abcd') #特别注意
    [1, '2', 'a', 'b', 'c', 'd']
    解释:
    A = 'abcd'
    B = list(A) =[ 'a', 'b', 'c', 'd']
    把 'a', 'b', 'c', 'd'写入a的末尾
    
    a = [1,'2']
    a.extend((3,4,5))
    [1, '2', 3, 4, 5]
    解释:
    A = (3,4,5)
    B = list(A) =[ 3, 4, 5]
    把 3, 4, 5写入a的末尾
    
    a = [1,'2']
    a.extend({'age':23})
    [1, '2', 'age']
    解释:
    A = {'age':23}
    B = list(A) =['age']
    把'age'写入a的末尾
    

    可见,只要按照正确步骤解释,extend()也不会搞错。

    相关文章

      网友评论

        本文标题:python 中list的extend()方法和append()

        本文链接:https://www.haomeiwen.com/subject/gsfwxctx.html