保姆级《Python编程——从入门到实践》第三章学习笔记(上)分享啦!!!

目录

列表是什么?

列表的定义

列表的写法

访问列表元素

索引从0而不是从1 开始

提取并使用列表中的某个值

修改、增加、删除列表中的元素

修改列表元素

增加列表元素

在列表的末尾增加元素

在任意位置增加元素

删除列表元素

通过del 删除列表元素

通过pop()的方法删除元素

通过remove()方法删除列表元素

下期再见!!!

备注:


列表是什么?

列表的定义

列表是元素以特定顺序排列而组成的。从定义中,我们可以得知,列表中可以放任何类型的元素,比如列表自身(称之为嵌套)。此外,列表的中的元素是有顺序的。列表的有序性方便我们从中提取某些特定的元素。

列表的写法

在Python中,列表是用方括号括起来的([ ]),列表中的元素由逗号, 隔开。

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles) # 打印三次

输出:
['trek', 'cannondale', 'redline', 'specialized']

['trek', 'cannondale', 'redline', 'specialized']

['trek', 'cannondale', 'redline', 'specialized']

由于列表中的元素是有顺序的,Python保存在列表的顺序,因此,在三次打印中,输出的结果完全相同(包括顺序)。在后面,我们会讲到,多次打印集合和词典的,输出结果的顺序可能会不同。

访问列表元素

由于列表是有顺序的,因此,Python可以根据列表中元素的位置,访问到该元素的具体内容,这一过程称之为索引(indexing)。访问的方法是在列表名后加上[ 位置](0,1,2,3 等)。比如,我们要访问上述列表的第一个元素:

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])

输出:
trek

细心的读者可能已经发现,列表索引是从0开始而不是从1开始。

索引从0而不是从1 开始

那么,我们现在可以推测,当我们执行 print(bicycles[1]) 会得到第二个元素cannondale。由于列表索引的这一特点,我们可能会得到自己不想得到的值。比如,我们想得到第一个元素,感觉应该执行 print(bicycles[1]),这时,得到的结果不是我们预期的。此外,我们可能会遇到索引超出列表元素个数的错误。比如:

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[4])

输出:
IndexError: list index out of range  # 索引错误,列表索引超出范围

有时候,我们可能不知道列表有多少个元素或者元素个数过多,书写不太方便,此外,书写可能由于索引从而非从1开始而犯错,Python给我们提供了一种更方面提取列表最后一个元素的方法,即从反向提取列表元素。具体操作如下:

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])
print(bicycles[-2])
print(bicycles[-3])

输出:
specialized
redline
cannondale

从上述代码,可以看到,提取最后一个元素的方法是将索引写为[-1]。由此可以推知,倒数第二个元素的索引为[-2]; 倒数第三个元素的索引为[-3]

提取并使用列表中的某个值

通过索引的方式,得到列表的输出类型是字符串。自然而然,我们就会想到,那么我们是否可以对列表索引的结果进行类似字符串的操作?当然是肯定的。比如:

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
message = f"My first bicycle was a {bicycles[0].title()}." 
print(message)

输出:
My first bicycle was a Trek.

修改、增加、删除列表中的元素

修改列表元素

修改列表元素的思路就是首先访问到该元素,再对该元素赋予新值。比如:

motorcycles = ['honda', 'yamaha', 'suzuki']
print('原始列表为:')
print(motorcycles)
print()
print('修改后的列表为:')
motorcycles[0] = 'ducati' 
print(motorcycles)

输出:
原始列表为:
['honda', 'yamaha', 'suzuki']

修改后的列表为:
['ducati', 'yamaha', 'suzuki']

增加列表元素

在列表的末尾增加元素

在英文中,append的含义是在文章的后面添加。写过期末论文的同学,对appendix(附录)这一单词应该也不会感到陌生。在达芬奇调色中,将所选素材添加到时间线最后的方法是append at end。如下图所示:

保姆级《Python编程——从入门到实践》第三章学习笔记(上)分享啦!!!

 

在Python中,在列表的末尾增加元素也使用append()方法。具体操作如下:

list_1 = ['first element','second element','third element']
print(list_1)
print()
list_1.append('last element')
print(list_1)

输出:
['first element', 'second element', 'third element']

['first element', 'second element', 'third element', 'last element']

从上述代码可知,我们通过append()的方法在list_1列表的最后一个位置添加了‘last element'这一元素。在后续,我们会学到如何首先建立一个空列表,然后

配合使用pop()和append()的方法,生成一个新的列表。

在任意位置增加元素

在任意认为增加元素需要使用insert()方法。由于append()方法增加元素的位置已经确定,因此,我们只需要给它传递一个值就可以。insert()方法,可以在任意位置增加元素,因此,我们首先需要一个参数告诉Python,我们想将该元素增加到哪个位置,然后,在告诉Python增加的元素值是什么(第二个参数)。具体操作如下:

list_1 = ['first element','second element','third element']
print(list_1)
print()
list_1.insert(0,'truely first element')
print(list_1)

输出:
['first element', 'second element', 'third element']

['truely first element', 'first element', 'second element', 'third element']

删除列表元素

通过del 删除列表元素

list_1 = ['first element','second element','third element']
print(list_1)
print()
del list_1[0]
print(list_1)

输出:
['first element', 'second element', 'third element']

['second element', 'third element']

使用del 方法,我们无法对删除的元素进行访问

通过pop()的方法删除元素

pop()方法和append()相对应。append()方法可以在列表的最后位置增加元素,而pop()方法可以删除列表最后一个元素。具体操作如下:

list_1 = ['first element','second element','third element']
print(list_1)
print()
poped_list_1= list_1.pop()
print(list_1)
print()
print(poped_list_1)

输出:
['first element', 'second element', 'third element']

['first element', 'second element']

third element

从上面代码中,我们可以看到,我们依然可以通过访问到被删除的元素。我们可以给del 赋予一个变量,看看打印结果:

list_1 = ['first element','second element','third element']
print(list_1)
print()
del_list_1 = del list_1[0]   # 没有这种写法
print(list_1)
print(del_list_1 )

输出:
SyntaxError: invalid syntax

上面的代码,再次证明我们真的无法访问del 删除的元素。

其实,我们也可以给pop()方法传递一个位置参数。具体操作如下:

list_1 = ['first element','second element','third element']
print(list_1)
print()
poped_list_1= list_1.pop(0)
print(list_1)
print()
print(poped_list_1)

输出:
['first element', 'second element', 'third element']

['second element', 'third element']

first element

当我们给pop()方法传递一个位置参数时,pop()方法就不会采用其默认值(末尾)。

通过remove()方法删除列表元素

与del 和pop()方法不同, remove()方法不是基于索引删除元素,而是基于元素的值进行删除。具体操作如下:

list_2 = ['first element','second element','second element','third element']
print(list_2)
print()
list_2.remove('second element')
print(list_2)

输出:
['first element', 'second element', 'second element', 'third element']

['first element', 'second element', 'third element']

细心的读者可能已经发现,列表中有两个相同的元素,为什么基于元素值的remove()方法只删除了一个值?这是因为remove()方法在找到第一个值后,就停止往后找了。我们有两种方法可以解决这一问题。第一种方法将列表转化为集合。集合具有互斥性,因此,集合中的各个元素值都是不相等的。第二种方法就是使用for 循环,我们会在第七章讲到。在这里,我只演示第一种方法。

list_2 = ['first element','second element','second element','third element']
print(list_2)
print()
set_2 = set(list_2)
set_2.remove('second element')
print(set_2)

输出:
['first element', 'second element', 'second element', 'third element']

{'third element', 'first element'}

下期再见!!!

我会根据自己的学习进度以及学业安排,不时更新内容。如果大家感觉有用,可以点赞或者留言告诉我。

备注:

最近在实习,且快到开题报告的时间了,因此,更新的速度可能会比以往慢一点。烦请读者体谅。祝大家国庆节快乐。

上一篇:算法刷题计划二----无主题随机刷题16(leetCode)


下一篇:【51Nod 1616】【算法马拉松 19B】最小集合