10.列表修改添加查找

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() 方法中间某一位置插入元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值