list操作

Posted z-qinfeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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})同样也可以

以上是关于list操作的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

常见的代码片段

无法从 onListItemClick 开始片段

VSCode 如何操作用户自定义代码片段(快捷键)

elasticsearch代码片段,及工具类SearchEsUtil.java