📝前言:
这篇文章主要讲解一下python中常见的数据容器之一——列表
本文主要讲解列表的创建以及我们常用的列表操作方法
首先,列表是什么?
在Python中,列表(List)是一种有序、可变的集合数据类型,可以存储任意类型的元素,包括数字、字符串、布尔值、甚至其他列表。列表允许重复的元素,也可以包含混合类型的元素。
从上面我们可以提取出列表的以下几个特点: 1,可以容纳多个数据(上限为2**63-1、9223372036854775807个) 2,可以容纳不同类型的数据(混装) 3,数据是有序存储的(有下标序号) 4,允许重复数据存在 5,可以修改(增加或者删除元素)
列表的创建是通过方括号 []
以及逗号分隔符,
来实现的。例如:
my_list = [1, 2, 3, "apple", True] # 这里创建了一个存放着不同数据类型的列表
如果对下标索引不太了解的朋友可以先看这篇文章C语言——数组,里面有对下标索引的详细介绍。
在python中,元素的下标:从前向后,是从0
开始,但是也可以反向索引:从后向前,是从-1
开始
以下是一个使用列表下标索引的简单示例:
# 创建一个列表
my_list = [1, 2, 3, 4, 5]
# 使用下标索引来获取列表中的元素
first_element = my_list[0] # 结果是1
second_element = my_list[1] # 结果是2
在这个例子中,我们首先创建了一个包含
5
个整数的列表my_list
。 然后,我们使用下标索引[0]
和[1]
来获取列表中的第一个和第三个元素,并将它们分别赋值给变量first_element
和second_element
。
(注意:超出列表范围的索引会引发错误)
例如:
# 定义一个嵌套的列表
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 访问嵌套列表中的元素
first_element = nested_list[0][0] # 第一个列表中的第一个元素
second_element = nested_list[1][2] # 第二个列表中的第三个元素
third_list = nested_list[2] # 第三个列表
print(first_element, second_element, third_list)
输出结果:
[0][0]
:先找外层列表的第一个元素——列表,再找内层第一个列表的第一个元素
[1][2]
:先找外层列表的第二个元素——列表,再找内层第二个列表的第三个元素
[3]
:外层列表的第三个元素——列表
index()
方法:用于从列表中查找指定元素的索引,但是如果列表不包含此元素,则会引发 ValueError
。
语法:
list.index(value, [start, [stop]]) # []代表可选
●
value
:要从列表中查找的元素。 ●start
:开始查找的位置。默认值为0。 ●stop
:停止查找的位置。默认值为列表的长度。 ●返回值
:返回指定元素在列表中的索引。
示例:
my_list = [1, 2, 3, 4, 5]
# 查找元素3的索引
index = my_list.index(3)
print(index) # 输出 2
(注意:如果列表中有多个相同的指定元素,index()
方法仅返回第一个出现该元素的索引。)
append()
方法:将一个值添加到列表的末尾,并返回修改后的列表。
(注意:append()
方法是直接修改原始列表,而不是创建一个新列表。)
语法:
list.append(element)
●
list
是一个列表对象。 ●element
是要添加到列表末尾的元素。
示例一:
my_list = [1, 2, 3]
my_list.append(4)
print(my_list) # 输出:[1, 2, 3, 4]
添加的元素还可以是一个列表
示例二:
my_list = [1, 2, 3]
sub_list = [4, 5]
my_list.append(sub_list)
print(my_list) # 输出:[1, 2, 3, [4, 5]]
extend()
方法来扩展列表,即在列表的末尾添加其他列表或其他元素。
(注意:extend()
方法会直接修改原始列表,而不是创建一个新的列表。)
语法:
list.extend(iterable)
●
iterable
:要添加到列表末尾的元素序列。(不可是字符串或者字典)
示例:
# 创建一个列表
lst = [1, 2, 3]
# 使用 extend() 方法扩展列表
lst.extend([4, 5, 6]) # 将另一个列表扩展到原始列表的末尾
print(lst) # 输出:[1, 2, 3, 4, 5, 6]
# 尝试扩展一个字符串,会引发 TypeError
try:
lst.extend("Hello")
except TypeError as e:
print(f"Error: {e}")
insert()
方法来插入一个元素到指定的位置。
(注意:insert()
方法会直接修改原始列表,而不是创建一个新的列表。)
语法
list.insert(index, element)
index
:指定插入的位置。(下标)element
:要插入的元素。
示例:
# 创建一个列表
lst = [1, 2, 3, 4]
# 使用 insert() 方法插入元素
lst.insert(1, 1.5) # 在索引 1 处插入 1.5
print(lst) # 输出:[1, 1.5, 2, 3, 4]
del
语句用于从列表中删除指定下标的元素,不会返回被删除的元素。
(直接修改原始列表)
语法:
del list[下标]
示例:
lst = [1, 2, 3, 4, 5]
del lst[1] # 删除索引为1的元素,即2
print(lst) # 输出:[1, 3, 4, 5]
pop()
方法用于从列表中删除指定下标的元素,会返回被删除的元素。
(直接修改原始列表)
语法:
list.pop(下标)
示例:
lst = [1, 2, 3, 4, 5]
removed_element = lst.pop(1) # 删除索引为1的元素,并返回该元素
print(lst) # 输出:[1, 3, 4, 5]
print(removed_element) # 输出:2
remove()
方法用于删除某元素在列表中的第一个匹配项,如果元素不在列表中,这个方法不会引发错误。
(直接修改原始列表)
语法:
list.remove(元素)
示例:
numbers = [1, 2, 3, 4, 5, 3]
numbers.remove(3)
print(numbers) # 输出 [1, 2, 4, 5, 3]
clear()
方法用于清空列表中的所有元素。
语法:
list.clear()
示例:
numbers = [1, 2, 3, 4, 5]
numbers.clear()
print(numbers) # 输出 []
count()
统计某元素出现的数量
语法:
list.count(元素)
示例:
fruits = ["apple", "banana", "cherry", "apple"]
count = fruits.count("apple")
print(count) # 输出 2
len()
用于统计列表中全部元素的个数
语法:
len(列表)
示例:
fruits = ["apple", "banana", "cherry"]
count = len(fruits)
print(count) # 输出 3
reverse()
可以用于反转列表
(注意:reverse()
方法会直接修改原始列表,而不是创建一个新的反转对象。)
基本语法:
列表.reverse()
示例:
# 反转列表
lst = [1, 2, 3, 4, 5]
lst.reverse()
print(lst) # 输出: [5, 4, 3, 2, 1]
因为列表是可以修改的序列,所以有关列表的大多数操作都是直接在原始列表上进行的,不会返回新的列表
下面对方法做个梳理,方便大家随时查阅功能: