一、创建空列表
在python中,万物皆对象。其实,对于列表它不仅是一种数据类型,其实也是一个类(python中将五大内置数据类型-列表、字典、元组、集合、字符串)都进行了封装使之成为一个类。那么,创建空列表就有两种方法。
第1种:a = [] ,这也是很多人习惯用的方法。
第2种:a = list(),由于列表被封装为了一个list类,那么实例化list类就生成了一个空列表。
我们来验证一下:
>>> a = [] >>> print(a) [] >>> b = list() >>> print(b) [] >>>
二、列表添加元素
前面我们说到了list类,一个具体的列表就是list类的实例,该实例就可以调用其类种的方法来实现某些功能。如何给列表添加元素呢?可以用类中的append()函数。
我们来看一下list类中的append()方法。
class list(object) ... append(self, object, /) Append object to the end of the list.
在list类中,append()方法接收一个对象,并将其添加到列表的最后面。看下面的例子:
>>> a = list() >>> a.append("hello") >>> print(a) ['hello'] >>> a.append("world") >>> print(a) ['hello', 'world']
上例中,创建了一个空列表a,调用append()方法将hello加入到列表a中,然后再次将world加入到列表a中,最后看到的打印效果是,hello和world都添加到了列表a中,且都是添加到列表的后面。
三、删除列表元素
列表删除元素的方式有几种,而且各有不同的特性。
1、del():可以用来删除单个或多个元素(通过列表的切片)
我们来看两个例子:
>>> a = [1,3,5,11,42] >>> del(a[0]) >>> print(a) [3, 5, 11, 42] >>>
>>> a = [1,3,5,11,42] >>> del(a[0:2]) >>> print(a) [5, 11, 42]
第一个例子中,del(a[0])成功将索引为0的元素删除了。第二个例子中,del(a[0:2])成功将索引为0到2(不包含)的元素删除了。
2、pop():用于删除元素并返回
我们来看下面的例子:
>>> a = [2,3,12,423,11] >>> s = a.pop() >>> print(s) 11
我们可以看到,pop()函数会将列表中的最后一个元素删除并返回。
拓展,pop()还可以接收一个参数,用于删除指定索引的值并返回。我们来看下面的例子:
>>> a = [2,3,12,423,11] >>> s = a.pop(1) >>> pring(a) >>> print(a) [2, 12, 423, 11] >>> print(s) 3
我们可以看到,pop(1)删除了列表a中的索引为1的元素,值为3,并将其返回
3、remove():删除列表中首次出现的的某一元素。
>>> a = [2,3,2,12,423,11] >>> a.remove(2) >>> print(a) [3, 2, 12, 423, 11]
我们可以看到,列表中的元素2被删除了。
四、列表扩展(列表拓展列表)
extend():可以将B列表拓展到A列表中。
>>> A = [1,3,5] >>> B = [2,4,6] >>> A.extend(B) >>> print(A) [1, 3, 5, 2, 4, 6] >>> print(B) [2, 4, 6]
我们可以看到,A.extend(B),将B列表拓展到了A列表后面,而B列表没有改变。
五、插入元素
insert(index, value):在指定索引index位置插入值value。
>>> a = [2,34,12,33,11,23] >>> a.insert(1, 100) >>> print(a) [2, 100, 34, 12, 33, 11, 23]
六、获取元素的索引值
index(value):返回元素value的索引值。
>>> a = [2,34,12,33,11,23] >>> i = a.index(34) >>> print(i) 1
七、列表排序
sort(key,reverse):为列表进行排序。sort()方法会改变其调用列表本身的顺序,默认升序排列。
>>> a = [2,34,12,33,11,23] >>> a.sort() >>> print(a) [2, 11, 12, 23, 33, 34]
再看一个降序排列
>>> a = [2,34,12,33,11,23] >>> a.sort(reverse=True) >>> print(a) [34, 33, 23, 12, 11, 2]
我们可以看到,当reverse=True时,列表就会将排序反过来,也就是降序
tips:sorted(列表a)不改变列表本身,会将列表a排序后的结果返回。
>>> a = [2,34,12,33,11,23] >>> s = sorted(a) >>> print(s) [2, 11, 12, 23, 33, 34] >>> s = sorted(a, reverse=True) >>> print(s) [34, 33, 23, 12, 11, 2]
我们可以看到,sorted()会将排序后的结果返回,而不会改变原列表,同样sorted()也有reverse参数。
八、列表切片
我们知道,列表是有索引的,可以通过索引获取列表中的某一个或多个值。
a:索引值从0开始,最有一个索引值为列表长度-1,或用-1标识。
b:索引区间可以从任何地方开始,需要注意的是,若从左到右,可以用类似a[2: 4],若从右到左,则可以用类似a[-3: -1]。
c:可以通过区间和步长来获取区间内的部分值,a[1:5:2],其中1,5为索引区间,2为步长。
>>> a = [2,34,12,33,11,23] >>> print(a[0:3:2]) [2, 12] >>> print(a[-4:-1:2]) [12, 11]
我们可以看到,a[0:3:2]是0:3区间,步长为2,所以就是[2,34,12,33]每隔步长2取值,所以取到2, 12。同样a[-4:-1:2]只是通过反向索引取值罢了。