zoukankan      html  css  js  c++  java
  • list操作

    In [7]: a= [1,2]   #定义一个list
    
    In [8]: a+[3,4]      # 使用+操作
    Out[8]: [1, 2, 3, 4]
    
    In [9]: a
    Out[9]: [1, 2]
    
    In [10]: a.extend([3,4])   # 使用extend操作,其实是在修改a
    
    In [11]: a                       # 打印a 
    Out[11]: [1, 2, 3, 4]
    
    In [12]: a.extend((5,6))   # 这里使用extend一个元组
    
    In [13]: a                        # 打印
    Out[13]: [1, 2, 3, 4, 5, 6]

    再看下面的示例二

    In [14]: a =[1,2]
    
    In [15]: id(a)
    Out[15]: 1801141280328
    
    In [16]: a.extend([3,4])
    
    In [17]: id(a)
    Out[17]: 1801141280328
    
    In [18]: c = a+[5,6]
    
    In [19]: id(c)
    Out[19]: 1801126648200

    由示例2知: extend操作之后,对象还是那个对象 ,但+操作之后,对象就变化了.

    由示例1知: extend操作即可传参是list类型,也可以是元组tuple类型, 因为extend其实是调用了基类MutableSequence中的魔法函数__iadd__, 以下是源码

        def __iadd__(self, values):
            self.extend(values)
            return self
      def extend(self, values):
            'S.extend(iterable) -- extend sequence by appending elements from the iterable'
            for v in values:
                self.append(v)

    由源码可知:

    (1)  return self , 所以我们示例中extend操作之后id值不变

    (2)  extend(iterable)  , 所以只要是可迭代的对象都可以作为extend()函数的入参, 所以a.extend([3,4])可以, a.extend((5,6)) 也可以, a.extend({33,44})同样也可以

  • 相关阅读:
    内置函数二
    内置函数
    【MySQL】纲举目张:打通MySQL架构和业务的任督二脉
    关闭服务器节能模式
    透明大页
    【MySQL】MySQ 8.0启用HugePage
    运维安全之Tripwire
    七字诀,不再憋屈的运维
    利用钉钉机器人发送告警信息
    【MySQL】MySQL 8.0支持utf8mb4
  • 原文地址:https://www.cnblogs.com/z-qinfeng/p/12026399.html
Copyright © 2011-2022 走看看