1.列表入门
我们先来学习创建一个最简单的列表。列表由 [ ] 把里面的所有数据框起来,列表里面的每一个数据叫作 元素。每个元素之间都要用 英文逗号 (,) 隔开。
列表名 = [元素1,元素2,元素3,.......]
如:
class1 = ['李白','王维','孟浩然','王昌龄','王之涣']
class2=[8, 6.18, '你好', True]
列表的元素可以是字符串,也可以使数字,甚至可以使另外一个列表,列表可以容纳任意数目不同类型的元素,元素之间有先后顺序,当然支持直接换行的,如:
class1 = [
'李白',
'王维',
'孟浩然',
'王昌龄',
'王之涣'
]
表可容纳任意个元素,当然也包括 0 个元素。这样的列表我们称为 空列表,只用一对中括号 [] 表示即可,中间不加逗号。
2.列表元素查找
列表内元素有先后顺序。在现实中我们用“第一个”“第二个”……这种叫法来表示。在 Python 的列表中,也有专门的数字来记录列表内每个元素的位置,称为 索引。
注意:列表的索引是从 0 开始的。
class1 = ['李白','王维','孟浩然','王昌龄','王之涣']
李白的索引就是0,王维 2 ,孟浩然3 .......
print(class1[7])
# 输出:李白
拓展:编程语言的列表索引一般都是从 0 开始的,只是在不同语言里 列表 有时也叫做 数组,索引 有时也叫做 下标。
如果我们要查找倒数第几个,索引也一样可以这样“倒着数”,这种索引方法叫作 反向索引。
我们在索引数字前加个 - 号,用 列表[-x] 的形式来表示“倒数第 x 个”元素:
print(class1[-1])
# 输出:王之涣
要注意的是,和正向索引不同,反向索引的数字和我们日常生活中的倒数数字是一样的,用 -1 表示倒数第一个,用 -2 表示倒数第二个。
什么时候该用正向索引,什么时候用反向索引呢?
大体思路是,如果要取的元素在列表靠前的位置,正向索引当然更方便,如果已知元素处于列表靠后的位置,那反向索引更方便。
正向索引 和 反向索引 都是通过位置,查找对应值的方法,我们根据具体情况决定使用哪一种。
如果我们已知列表中有一个元素,但不知道它的位置,那我们应该怎么办呢?
这就使用到 index() 方法,使用 列表.index(元素内容) 的形式,我们可以很方便地获得元素在列表中的索引值:
name_libai = class1.index('李白')
print(name_libai)
# 输出:0
注意index() 方法只返回正向索引值,不能返回反向索引值哦。
3.列表元素的修改
列表的修改通过 列表[索引] = 新值 的格式,就可以修改名单 class1 中对应索引的内容啦。
class1[1] = '杜甫'
print(class1[1])
#输出:杜甫
print(class1)
#输出: ['李白','王维','孟浩然','王昌龄','王之涣']
也可以用反向索引修改
class1[-1] = '苏东坡'
print(class1[-1])
#输出:苏东坡
4.列表元素添加
如果我们要在列表末尾添加一个元素。可以使用列表自带的 append() 方法实现:
class1.append('白居易')
单词 “append”的字面意思是“附加,增补”,所以 append() 方法会在列表末尾新增一个元素,同时列表长度加一,变成6个元素。
如果我们在列表中间某个位置插入一个元素。列表自带了 insert() 方法,可以实现这个要求。单词“insert”的意思就是“插入”。在列表中间某个位置插入一个元素”,要清楚到底是“哪个位置”,以及“什么元素”。这正是 insert() 方法要求的两个参数的意义——插入的位置(索引值),以及新元素内容。
比如我们需要再'孟浩然'的后面插入'王安石',孟浩然排在第三位,他的索引是2,那么王安石需要排到第四位,索引是3的位置插入'王安石',例:
class1.insert(3,'王安石')
print(class1[3])
#输出:王安石
要注意的是,排在王安石之后的元素,都因为 insert() 的操作,被迫向后挪了一个位置,索引值都要加 1。
总结:
列表的语法,是用 英文中括号 包裹元素,不同元素用 英文逗号 隔开。
元素的查找上,我们可以用 索引 和 反向索引 获取指定位置的元素,用 index() 方法获取元素的正向索引。
元素的修改上,我们用 列表[索引] = 新值 的方式修改指定位置的元素。
元素的添加上,我们用 append() 方法在列表末尾添加元素,用 insert() 方法中间某一位置插入元素。