zoukankan      html  css  js  c++  java
  • AttributeError: 'tuple' object has no attribute 'extend'

    出错demo

    1 In [5]: a.extend([4,5])                                                         
    2 ---------------------------------------------------------------------------
    3 AttributeError                            Traceback (most recent call last)
    4 <ipython-input-5-42b5da5e2956> in <module>
    5 ----> 1 a.extend([4,5])
    6 
    7 AttributeError: 'tuple' object has no attribute 'extend'

    打印一下tuple类型的属性可以看到,tuple类型除内置类型外,只有count和index两个属性

    extend是list类型的方法

     1 In [3]: dir(tuple)                                                              
     2 Out[3]: 
     3 ['__add__',
     4  '__class__',
     5  '__contains__',
     6  '__delattr__',
     7  '__dir__',
     8  '__doc__',
     9  '__eq__',
    10  '__format__',
    11  '__ge__',
    12  '__getattribute__',
    13  '__getitem__',
    14  '__getnewargs__',
    15  '__gt__',
    16  '__hash__',
    17  '__init__',
    18  '__init_subclass__',
    19  '__iter__',
    20  '__le__',
    21  '__len__',
    22  '__lt__',
    23  '__mul__',
    24  '__ne__',
    25  '__new__',
    26  '__reduce__',
    27  '__reduce_ex__',
    28  '__repr__',
    29  '__rmul__',
    30  '__setattr__',
    31  '__sizeof__',
    32  '__str__',
    33  '__subclasshook__',
    34  'count',
    35  'index']

     extend是1个列表+另一个列表,

    它会改变原来列表的长度,而不会生成一个新的列表

    所以,如果你使用了a=list.extend(XXX),它并不会如你希望 返回一个列表,而是一个None

    示例 :

     1 In [6]: b=[1,2]                                                                 
     2 
     3 In [7]: c=b.extend([3])                                                         
     4 
     5 In [8]: b                                                                       
     6 Out[8]: [1, 2, 3] 
     9 
    10 In [10]: print(c)                                                               
    11 None
    12 
    13 In [11]: type(c)                                                                
    14 Out[11]: NoneType

    顺便说明一下:

    count表示统计元组中指定的1个元素 出现的次数

    1 In [20]: b=(2,2,2,3,4)                                                          
    2 
    3 In [21]: b.count(2)                                                             
    4 Out[21]: 3

    index返回指定元素第1次出现的位置(下标)

    1 In [20]: b=(2,2,2,3,4)                                                          
    2 
    3 In [22]: b.index(3)                                                             
    4 Out[22]: 3
    5 
    6 In [23]: b.index(2)                                                             
    7 Out[23]: 0

     附:

    list的所有属性如下

     1 In [4]: dir(list)                                                               
     2 Out[4]: 
     3 ['__add__',
     4  '__class__',
     5  '__contains__',
     6  '__delattr__',
     7  '__delitem__',
     8  '__dir__',
     9  '__doc__',
    10  '__eq__',
    11  '__format__',
    12  '__ge__',
    13  '__getattribute__',
    14  '__getitem__',
    15  '__gt__',
    16  '__hash__',
    17  '__iadd__',
    18  '__imul__',
    19  '__init__',
    20  '__init_subclass__',
    21  '__iter__',
    22  '__le__',
    23  '__len__',
    24  '__lt__',
    25  '__mul__',
    26  '__ne__',
    27  '__new__',
    28  '__reduce__',
    29  '__reduce_ex__',
    30  '__repr__',
    31  '__reversed__',
    32  '__rmul__',
    33  '__setattr__',
    34  '__setitem__',
    35  '__sizeof__',
    36  '__str__',
    37  '__subclasshook__',
    38  'append',
    39  'clear',
    40  'copy',
    41  'count',
    42  'extend',
    43  'index',
    44  'insert',
    45  'pop',
    46  'remove',
    47  'reverse',
    48  'sort']

  • 相关阅读:
    keras环境搭建
    通过程序自动设置网卡的“internet共享”选项
    编译pjsip源码
    电商开发必备,淘宝商品和类目体系是如何设计的
    pom.xml成了普通xml文件
    springboot application.properties不生效
    SpringBoot进阶教程(七十二)整合Apollo
    SpringBoot进阶教程(七十一)详解Prometheus+Grafana
    SpringBoot进阶教程(七十)SkyWalking
    Java8 lamda表达式
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/11077232.html
Copyright © 2011-2022 走看看