Blog Details

数据容器——列表(list)学习总结

在python中,我们想要存储多份数据,一个便捷的方法就是使用数据容器。

列表(list)就是一种数据容器,它可以存储任意类型的数据,我们可以存储英文字母、数字、字符串等,甚至可以存储另一个列表。(一个列表可以存储不同类型的数据)

目录

1定义列表

2列表的常用操作(方法)

2.1访问列表元素

2.2查找列表中某元素的索引

2.3通过索引修改列表中的元素

2.4在列表中插入新元素

2.5删除列表中的元素

2.6统计列表中元素数量

3列表的循环遍历

1定义列表

列表由一系列按特定顺序排列的元素组成。python中用方括号([ ])表示列表,用逗号分隔其中的元素。

例1:下面我们尝试定义列表:

# 定义列表

list_1 = [666, "python"]

# 定义嵌套列表

list_2 = [[1, 2, 3], 666, list_1]

# 将其打印

print(list_1)

print(list_2)

输出结果如下:

[666, 'python']

[[1, 2, 3], 666, [666, 'python']]

可以看出,列表中的元素可以是数字、字符串、列表。

2列表的常用操作(方法)

2.1访问列表元素

列表中的元素是有序的,每个元素都有自己的序号(索引),所以我们可以通过索引访问列表中的元素。

访问的语法为:列表名[索引]

例2:下面使用索引将列表中的元素取出:

list_1 = [666, "python"]

print(list_1[0])

print(list_1[1])

list_2 = [[1, 2, 3], 666, list_1]

print(list_2[0])

print(list_2[1])

print(list_2[2])

输出结果如下:

666

python

[1, 2, 3]

666

[666, 'python']

要注意,第一个元素的索引为0;第二个元素的索引为1;以此类推,第n个元素的索引为n-1。

细心一点还可以发现,定义列表后,列表中的元素如果是字符串,通过列表名称打印列表后,得到的结果会含有单引号。但若通过索引访问该元素,再将其打印,输出结果中就不含单引号。

通过索引访问打印较之直接打印还有一个显而易见的特点,就是可以选择列表中的任意一个元素单独打印。

但对于一个有几十多个或者几百多个元素的列表,如果想要直接访问最后一个元素该怎么办呢?一种方法就是弄清楚这个列表中具体有多少个元素,然后再计算出最后一个元素的索引;还有一个好办法就是使用-1这个索引来访问最后一个元素。同样地,可以通过-2、-3访问倒数第二、第三个元素。

例3:比如像这样:

list_1 = [666, "python"]

list_2 = [[1, 2, 3], 666, list_1]

print(list_2[-1])

print(list_2[-2])

print(list_2[-3])

输出结果如下:

[666, 'python']

666

[1, 2, 3]

还有要注意的一点是,索引超出列表元素范围时,程序无法正确运行。

从例2的运行结果可以看出,list_2列表中,索引为0和2的两个元素的打印输出结果均为列表,但如果我们想单独访问这两个列表中的某一个元素(比如元素3)该怎么操作呢?这时就要再加上3在该列表中的索引。

例4:将list_2列表中的列表中的(读起来可能感觉怪怪的,但这个列表确实是嵌套了其他列表)元素3和python取出:

list_1 = [666, "python"]

list_2 = [[1, 2, 3], 666, list_1]

print(list_2[0][2])

print(list_2[2][1])

输出结果如下:

3

python

2.2查找列表中某元素的索引

我们可以通过索引来访问元素,也可以通过元素获取它的索引,这就需要使用index方法。但若列表中没有该元素,程序也无法正常运行。

index方法的语法是:列表.index(元素)

例5:通过元素,获取索引,将索引打印输出:

list_1 = [666, "python"]

print(list_1.index(666))

print(list_1.index('python'))

输出结果如下:

0

1

2.3通过索引修改列表中的元素

和某些其他数据容器不同,列表中的元素可以修改。

修改列表中元素的语法是:列表[索引]=另一个元素

例6:修改列表中的元素,并将其打印输出:

list_1 = [666, "python"]

list_1[0] = 888

print(list_1)

输出结果如下:

[888, 'python']

通过这种方法,我们就可以将列表中任意一个元素替换为另一个元素。

那我们可以不替换旧元素,直接在一个位置插入一个元素吗?答案是肯定的,继续往下看。

2.4在列表中插入新元素

我们可以在指定的索引位置插入元素,这要用到insert方法。

insert方法的语法是:列表.insert(索引, 元素)

例7:在列表中插入元素,并将其打印输出:

list_1 = [666, "python"]

list_1.insert(0, 888)

print(list_1)

print(list_1[0])

print(list_1[1])

输出结果如下:

[888, 666, 'python']

888

666

可以看出,888这一元素插到了索引为0的位置,原本索引为0的元素666的索引变成了1。

如果想直接将元素插入到尾部呢?一个办法就是搞清楚这个列表中有多少元素,再计算相应的索引并使用insert方法。还有一种方法就是使用append方法,这种方法可以直接将元素插到列表的尾部。

append方法的语法是:列表.append(元素)

例8:使用append方法将元素插入到列表尾部:

list_1 = [666, "python"]

list_1.append(888)

print(list_1)

输出结果如下:

[666, 'python', 888]

其实我们还可以直接在尾部加上一批元素,但是这批元素要放在另一个列表里面,这种方法就是extend方法。

extend方法的语法是:列表.extend(另一个列表)

例9:使用extend方法在列表尾部添加另一个列表中的元素:

list_1 = [666, "python"]

list_2 = [[1, 2, 3], 666, list_1]

list_2.extend(list_1)

print(list_2)

输出结果如下:

[[1, 2, 3], 666, [666, 'python'], 666, 'python']

要注意,我们并不是在列表尾部添加一个列表,而是添加了一批元素,一批在另一个列表中的元素。

2.5删除列表中的元素

列表不仅可以添加元素,还可以删除元素。

通过索引删除单个元素的方式有两种:

1:del 列表[索引]

2:列表.pop(索引)

例10:通过两种方式删除列表中的元素:

list_3 = [666, "python", 888, 666, 666]

list_4 = [[1, 2, 3], 666, [5, 6, 7]]

del list_3[3]

element = list_4.pop(1)

print(list_3)

print(list_4)

print(element)

输出结果如下:

[666, 'python', 888, 666]

[[1, 2, 3], [5, 6, 7]]

666

会发现使用pop方法可以将元素取出并且赋给另一个变量。

这里我们也能看出,列表中的元素是可以重复的,而有的数据容器中的元素是不可以重复的。

这时我们可以注意到,这两种方式都要使用索引才可以删除元素,那我们是不是还有办法可以不使用索引来删除元素呢?答案还是肯定的,我们还可以使用元素来删除元素,这就要用到remove方法了。

remove方法的语法是:列表.remove(元素)

这种方法可以将列表中第一个与该元素相同的元素删除。

例11:使用remove方法删除元素:

list_3 = [666, "python", 888, 666, 666]

list_3.remove(666)

print(list_3)

输出结果如下:

['python', 888, 666, 666]

可以看到,只有第一个666被删除了,后面的两个仍然保留。

如果想要删除列表中全部元素,我们除了使用以上方法一个一个删除外,还可以使用clear方法直接全部清除。

clear方法的语法是:列表.clear()

例12:使用clear方法清空列表中的元素:

list_3 = [666, "python", 888, 666, 666]

list_3.clear()

print(list_3)

输出结果如下:

[]

2.6统计列表中元素数量

在python中,我们可以使用count方法统计列表中某一个元素的数量,还可以使用len()函数来统计列表中共有多少元素。

count方法的语法:列表.count(元素)

len()函数的语法:len(列表)

例13:使用count方法和len函数分别统计列表中某一元素的数量和列表中全部元素的数量:

list_5 = [1, 1, 3, 5, 5, 5, 6]

count_1 = list_5.count(5)

count_2 = len(list_5)

print(count_1)

print(count_2)

输出结果如下:

3

7

可以看出,list_5列表中有3个元素5,共有7个元素。

3列表的循环遍历

例14:下面演示通过while循环和for循环遍历列表:

list_6 = [7, 5, 6, 3, 2]

i = 0

while i < len(list_6):

element = list_6[i]

print(element)

i += 1

for x in list_6:

print(x)

运行结果如下:

7

5

6

3

2

7

5

6

3

2

通过循环遍历,我们可以将列表中的元素依次取出。