Python 入门教程(4)数据类型 | 4.6、列表
文章目录
- 一、列表
- 1、定义
- 2、创建列表
- 2.1、使用方括号创建
- 2.2、使用`list()`函数创建
- 3、访问列表元素
- 4、遍历列表
- 4.1、使用`for`循环直接遍历
- 4.2、使用`enumerate()`函数遍历
- 4.3、使用`range()`和`len()`遍历(不推荐,但可行)
- 5、修改列表
- 5.1、直接修改列表元素
- 5.2、添加和删除列表元素
- 6、常用操作
- 6.1、切片
- 6.2、连接与复制
- 6.3、成员操作符
前言:
在Python中,列表(
List
)是一种非常重要的数据结构,它用于存储一系列有序的元素。这些元素可以是不同类型的,比如整数、浮点数、字符串,甚至是其他列表(即列表的嵌套)。列表是可变的,意味着我们可以在创建后添加、删除或修改其中的元素。
一、列表
1、定义
列表是由一系列变量组成的可变序列容器,具备下面这些特点:
- 有序性: 列表中的元素按照插入顺序进行排序,可以通过索引来访问和修改元素。
- 可变性: 列表是可变的,意味着可以修改列表中的元素,添加新元素或删除现有元素。
- 动态性: 列表的长度是动态的,可以根据需要动态地扩展和缩小。
- 可嵌套性: 列表可以嵌套其他列表,形成多维数据结构。
2、创建列表
2.1、使用方括号创建
列表可以使用方括号
[]
来创建,元素之间用逗号,
分隔,例如:
# 创建一个包含不同类型元素的列表
my_list = [1, "Hello", 3.14, [1, 2, 3]]
print(my_list) # 输出结果:[1, 'Hello', 3.14, [1, 2, 3]]
2.2、使用list()
函数创建
可以使用
list()
构造函数创建列表,例如:
list2 = list((1, 3.14, ["hello", "world"]));
print(list2) # 输出结果:[1, 3.14, ['hello', 'world']]
注意: 在使用
list()
函数创建列表时,一定要注意双括号。
3、访问列表元素
列表中的元素可以通过索引来访问,索引从0开始。例如,要访问my_list中的第一个元素,可以使用:
print(my_list[0]) # 输出: 1
如果要访问最后一个元素,可以使用负索引-1,倒数第二个元素则是-2,依此类推。
print(my_list[-1]) # 输出: [1, 2, 3]
4、遍历列表
遍历列表(List)中的元素是一个非常常见的操作。有几种不同的方式可以实现这一点。
4.1、使用for
循环直接遍历
这是最直接的方法,使用
for
循环直接遍历列表中的每个元素。
my_list = [1, 2, 3, 4, 5]
for element in my_list: print(element)
4.2、使用enumerate()
函数遍历
如果需要在遍历列表的同时获取元素的索引和值,可以使用
enumerate()
函数。
my_list = ['a', 'b', 'c', 'd']
for index, element in enumerate(my_list): print(f"Index: {index}, Element: {element}")
4.3、使用range()
和len()
遍历(不推荐,但可行)
虽然这不是遍历列表元素的推荐方式(因为它不直接访问元素,而是通过索引),但在某些特定情况下可能会用到。
my_list = ['apple', 'banana', 'cherry']
for i in range(len(my_list)): print(my_list[i])
5、修改列表
5.1、直接修改列表元素
由于列表是可变的,可以直接修改列表中的元素。例如,将my_list中的第一个元素修改为"Python":
my_list[0] = "Python"
print(my_list) # 输出: ['Python', 'Hello', 3.14, [1, 2, 3]]
5.2、添加和删除列表元素
- 添加元素:
- 使用
append()
方法可以在列表末尾添加一个元素。 - 使用
insert(i, x)
可以在指定位置i插入元素x。
- 使用
my_list.append(True) # 在末尾添加True
print(my_list) # 输出: ['Python', 'Hello', 3.14, [1, 2, 3], True] my_list.insert(1, "World") # 在索引1的位置插入"World"
print(my_list) # 输出: ['Python', 'World', 'Hello', 3.14, [1, 2, 3], True]
- 删除元素:
- 使用
remove(x)
可以删除列表中第一个值为x的元素。 - 使用
pop([i])
可以删除并返回列表中指定索引i的元素,如果不指定索引,则默认删除并返回最后一个元素。 - 使用
del
语句也可以删除元素。
- 使用
my_list.remove("Hello") # 删除第一个'Hello'
print(my_list) # 输出: ['Python', 'World', 3.14, [1, 2, 3], True] print(my_list.pop(1)) # 删除索引为1的元素并打印,即'World'
print(my_list) # 输出: ['Python', 3.14, [1, 2, 3], True] del my_list[0] # 删除索引为0的元素
print(my_list) # 输出: [3.14, [1, 2, 3], True]
6、常用操作
6.1、切片
Python的切片(Slicing)操作是一种强大的工具,用于从序列类型(如列表、元组、字符串、字节序列等)中选取一个范围内的元素。切片操作通过指定开始和结束的索引(以及可选的步长)来工作,返回一个新的序列,其中包含原序列中指定范围内的元素。切片的基本语法如下:
sequence[start:stop:step]
- sequence 是要进行切片的序列。
- start 是切片开始的索引(包含)。如果省略,默认为序列的开头。
- stop 是切片结束的索引(不包含)。如果省略,默认为序列的末尾。
- step 是切片时跳过的元素数量(即步长)。如果省略,默认为1。
示例代码:
假设有一个列表 my_list:
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
基本的切片操作:
- 获取前三个元素:my_list[:3] 结果为 [0, 1, 2]
- 获取从第四个元素到最后一个元素:my_list[3:] 结果为 [3, 4, 5, 6, 7, 8, 9]
- 获取第三个元素到第六个元素(不包括第六个):my_list[2:6] 结果为 [2, 3, 4, 5]
6.2、连接与复制
与字符串一样,列表之间可以使用
+
号和*
号实现连接和复制,例如:
x = [1, 2]
y = [3, 4]print(x + y) # 输出结果:[1, 2, 3, 4]
print(x * 2) # 输出结果:[1, 2, 1, 2]
6.3、成员操作符
检测一个元素是否存在于列表中,可以使用
in
关键字,它实际上是一个成员操作符。这个操作符会检查序列(如列表、元组、字符串等)中是否包含指定的元素,如果包含则返回True
,否则返回False
。例如:
# 定义一个列表
my_list = [1, 2, 3, 4, 5] # 使用in操作符检测元素3是否在列表中
if 3 in my_list: print("元素3在列表中")
else: print("元素3不在列表中") # 使用in操作符检测元素6是否在列表中
if 6 in my_list: print("元素6在列表中")
else: print("元素6不在列表中")