• 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})同样也可以

  • 相关阅读:
    HDU 4358 莫队算法+dfs序+离散化
    HDU 5692 线段树+dfs序
    Codeforces Round #377 (Div. 2) A B C D 水/贪心/贪心/二分
    LVS负载均衡的三种模式和八种算法总结
    hdfs 常用命令
    Linux 系统监控
    CentOS 7 时区设置
    kubernetes 留言版DEMO
    CentOS7 PostgreSQL 主从配置( 三)
    Postgres数据库在Linux中优化
  • 原文地址:https://www.cnblogs.com/z-qinfeng/p/12026399.html
Copyright © 2020-2023  润新知