从Scratch到Python 07 列表元组两兄弟
2023-06-03 09:35:43
和字符串一样,列表是我们的老朋友。我们来回顾一下Scratch中列表有关的指令:

- 将元素加入列表,可以直接加入到列表末尾,也可以插入到某项之前;
- 删除列表中的元素,可以删除某一项,也可以删除全部元素;
- 修改列表中的元素,将它替换为新的东西;
- 查询列表中是否存在某个元素,获得特定元素的编号(就是索引);
- 对列表中元素数量进行统计。
一、列表创建和删除
1、 创建列表
在数据类型一节,我们提到,列表中的元素放置在“[ ]”中,元素之间用“,”隔开。所以我们用这种方式可以方便地创建列表:### 创建列表
list1 = [1,2,3,4,5] # 列表中元素都是数字
list2 = ['one','two','three','four','five'] # 列表中元素都是字符串
list3 = ['one',2,3.14,True] # 列表中元素有字符串、整数、浮点数和布尔值
list4 = [ ] # 列表中一个元素也没有,但它也是一个空的列表
print(list1)
print(list2)
print(list3)
print(list4)
运行结果:

2、删除列表
删除列表很容易。直接写 del 列表名 就可以了。看示例:list1 = [1,2,3,4,5]
del list1
print(list1)
这段代码运行会出错,因为我们在第二行把创建的列表list1删除了,所以第三行输出时,Python找不到list1,会报异常:list1未定义。

二、访问和修改列表
1、访问列表元素
列表中的每个元素都有自己的序号,代表着元素在列表中的位置,这就是列表的索引。我们可以通过索引直接获取到列表的元素,索引序号从0开始,0表示第一个元素,1表示第2个元素,2表示第3个元素……依此类推,这和Scratch中的列表是不同的,需要特别注意。 列表还支持负数索引,从-1开始,-1表示最后一个元素,-2表示倒数第二个元素,-3表示倒数第三个元素……依此类推。 是不是发现列表的索引和字符串的索引挺像的?其实,本来字符串就是一种特殊的列表嘛。我们可以把上一节学到的索引用到本节,用于访问列表中的元素:# 访问列表内容
list1 = ['乐乐', '欢欢', '天天', '格格', '图图']
print(list1[0]) # 输出“乐乐”
print(list1[-1]) # 输出“图图”
print(list1[1]) # 输出“欢欢”
2、向列表中添加元素。
向列表添加元素有三种方式: - append():在列表的末尾追加一个元素 - extend():在列表末尾追加一个新列表的内容,相当于把两个列表合起来 - insert():在列表的指定位置插入一个新元素 我们举例说明:list1 = [1,2,3]
list2 = [5,6,7]
list1.append(4) # list1变成了[1,2,3,4]
list1.extend(list2) # list1变成了[1,2,3,4,5,6,7]
list1.insert(0,0) # 在第0个索引处插入了新元素0,列表变成[0,1,2,3,4,5,6,7]
print(list1)
3、删除列表中的元素
删除列表元素的方法有四种: - del listName[ 索引 ]:移除索引位置的元素。 - listName.remove(元素):移除列表中某个值的第一个匹配项。 - listName.pop(索引):移除指定索引位置的元素后返回该元素的值。 - listName.clear():清空列表中的所有元素。 举例说明:list1 = ['h','e','l','l','o']
del list1[0]
print(list1) # 打印 ['e', 'l', 'l', 'o']
list1.remove('l') # 删除了第一个‘l’
print(list1) # 打印 ['e', 'l', 'o']
print(list1.pop(-1)) #删除最后一个元素‘o’
print(list1) # 打印['e', 'l']
list1.clear() # 清空列表
print(list1) # 打印 [ ]
4、修改列表中元素
直接通过索引获取该元素并重新赋值即可。list1 = [1,2,3,4,5]
list1[0] = 0
print(list1) # 打印出[0,2,3,4,5]
三、列表的统计与排序
1、列表统计
为了方便我们使用列表,Python提供了许多方法和函数对列表进行处理,比如统计元素出现的次数、列表长度、所有元素的和、列表中最大元素或最小元素等。- count():统计列表中指定元素出现的次数
- index():返回列表中指定元素首次出现的索引
- len():返回列表长度数值
- sum():返回列表中所有元素的和
- max():返回列表中最大的元素
- min():返回列表中最小的元素
list1 = [1,2,3,4,5,5,4,3,2,1]
print(list1.count(3)) # 打印列表中元素3出现的次数:2
print(list1.index(2)) # 打印列表中第一个2出现的索引:1
print(len(list1)) # 打印列表的长度:10
print(sum(list1)) # 打印列表中所有元素的和:30
print(max(list1)) # 打印列表中最大的元素:5
print(min(list1)) # 打印列表中最小的元素:1
2、列表排序
列表的提供了可以对原列表中的元素进行排序的方法,格式如下: listName.sort(key = None, reverse = False) - listName:要排序的列表名 - key:表示从每个元素中提取一个用于比较的键一般使用默认的None - reverse:可选参数,值为True表示降序(从大到小),值为False表示升序(从小到大),默认为False,就是从小到大排序。 示例:list1 = [9,5,2,4,8,3,1,7,6]
list1.sort()
print(list1) # 打印出[1, 2, 3, 4, 5, 6, 7, 8, 9]
list1.sort(reverse=True)
print(list1) # 打印出[9, 8, 7, 6, 5, 4, 3, 2, 1]
注意:sort()方法是没有返回值的,排序会直接影响原有列表。
四、元组
列表讲了这么多,终于讲到它们的兄弟——元组了。之所以要把它放到最后,是因为元组和列表实在是太像了,只要会用列表,你就会用元组。上面讲的列表相关内容,几乎都可以用于元组,只有下面两点不同: - 元组采用圆括号定义; - 元组生成之后是固定不变的,不能删除或替换其中的数据项。 示例:tup1 = (1,2,3,4,5) # 创建5个元素的元组
tup2 = () # 创建空元组
tup3 = (1,) # 创建一个元素的元组,注意不能写成(1),那就成了单个数据不是元组
print(max(tup1)) # 获取元组中最大值
print(min(tup1)) # 获取元组中最小值
print(tup1[0]) # 打印元组第一个元素
print(tup1[-1]) # 打印元组最后一个元素
print(tup1[:2]) # 打印元组的切片
tup1 = (1,2,3) # 元组重新赋值,因为不能删除修改元素
print(tup1)
del tup1 # 删除整个元组
学会了列表,元组是不是特别简单?
微信扫码关注
抖音扫码关注