序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推
lst = []
或
lst = list()
In [12]: lst
Out[12]: []
In [13]: lst = [1, 2, 3]
In [14]: lst
Out[14]: [1, 2, 3]In [14]: lst
Out[14]: [1, 2, 3]
In [15]: lst[1]
Out[15]: 2
In [16]: lst[0]
Out[16]: 1
In [17]: lst[-1]
Out[17]: 3append 方法原地修改list, 给list增加一个元素,append的方法的返回值是None
In [27]: lst
Out[27]: [1, 2, 3]
In [28]: lst.append('444')
In [29]: lst
Out[29]: [1, 2, 3, '444']insert操作的索引超出范围, 如果是正索引, 等效于append, 如果是负索引, 等效于insert(0, object)
In [18]: lst
Out[18]: [1, 2, 3]
In [19]: lst.insert(0, '7777')
In [20]: lst
Out[20]: ['7777', 1, 2, 3]
In [21]: lst.insert(2, '9999')
In [22]: lst
Out[22]: ['7777', 1, '9999', 2, 3]
In [23]: lst.insert(-1, '0000')
In [24]: lst
Out[24]: ['7777', 1, '9999', 2, '0000', 3]extend 可以一次指定多个元素.
In [33]: lst
Out[33]: [1, 2, 3]
In [35]: lst.extend([4, 5, 6])
In [36]: lst
Out[36]: [1, 2, 3, 4, 5, 6]删除指定的索引, 默认为 -1
In [62]: lst
Out[62]: [1, 2, 3]
In [63]: lst.pop()
Out[63]: 3
In [64]: lst
Out[64]: [1, 2]
In [65]: lst.append(3)
In [66]: lst
Out[66]: [1, 2, 3]
In [67]: lst.pop(1)
Out[67]: 2
In [68]: lst
Out[68]: [1, 3]
In [69]: lst.pop(-1)
Out[69]: 3
In [70]: lst
Out[70]: [1]
In [91]: lst.pop(8) #如果`index`超出索引返回,会抛出`IndexError`,
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-91-04ae2f3ecd71> in <module>()
----> 1 lst.pop(8)
IndexError: pop index out of rangepop 是弹出索引对应的值 remove是删除最左边的一个值 pop针对的是索引 remove针对的是值
In [82]: lst
Out[82]: [1, 2, 3]
In [83]: lst.remove(3)
In [84]: lst
Out[84]: [1, 2]
In [85]: lst.insert(0, 7)
In [86]: lst
Out[86]: [7, 1, 2]
In [87]: lst.remove(7)
In [88]: lst
Out[88]: [1, 2]
In [89]: lst.remove(8) #remove 的时候,如果值不存在,会抛出ValueError
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-89-6e447793d6e1> in <module>()
----> 1 lst.remove(8)
ValueError: list.remove(x): x not in listclear 方法删除列表中所有元素
In [105]: lst
Out[105]: [1, 2, 3, 4, 5]
In [106]: lst.clear()
In [107]: lst
Out[107]: []index 方法通过值来查找索引
In [111]: lst
Out[111]: [1, 2, 3, 4, 5]
In [112]: lst.index(1)
Out[112]: 0
In [113]: lst.index(2)
Out[113]: 1
In [114]: lst.append(1)
In [115]: lst.index(1) #默认情况下, 返回查找到的第一个索引
Out[115]: 0
In [116]: lst.index(1, 2) #也可以指定值, 返回第二个索引
Out[116]: 5count 方法通过给的值在列表中查找值的个数
In [126]: lst
Out[126]: [1, 2, 3, 4, 5, 1]
In [127]: lst.count(1)
Out[127]: 2
In [128]: lst.count(2)
Out[128]: 1len 返回列表索引个数
In [129]: lst
Out[129]: [1, 2, 3, 4, 5, 1]
In [130]: len(lst)
Out[130]: 6
In [131]: lst.append('a')
In [132]: len(lst)
Out[132]: 7sort 方法对列表中的值重新排序
In [10]: lst
Out[10]: [1, 4, 5, 3, 2]
In [11]: lst.sort()
In [12]: lst
Out[12]: [1, 2, 3, 4, 5]
In [20]: lst.sort(reverse=True) #倒序
In [21]: lst
Out[21]: [5, 4, 3, 2, 1]reverse 和 sort 相反
In [33]: lst
Out[33]: [1, 3, 2, 4, 5]
In [34]: lst.reverse()
In [35]: lst
Out[35]: [5, 4, 2, 3, 1]copy 方法返回列表中的所有值
In [37]: lst
Out[37]: [5, 4, 2, 3, 1]
In [39]: lst.copy()
Out[39]: [5, 4, 2, 3, 1]
In [42]: lst2 = lst.copy()
In [43]: lst2
Out[43]: [5, 4, 2, 3, 1]
In [44]: id(lst)
Out[44]: 4382739912
#这里可以看出来, copy方法生成新新列表虽然列表完全相同, 但是指向的内存空间不同.
In [45]: id(lst2)
Out[45]: 4382776712
In [46]: lst3 = lst #而直接通过赋值的方式生成的新列表, 指向的内存空间和原来的相同, 也就意味着, 修改 lst3, lst 也会随之修改.
In [47]: id(lst)
Out[47]: 4382739912