Python 列表全方位解析:创建、操作、删除与遍历的全面指南

文章目录

    • 前言
    • [🎆一、 查找元素索引(index)](#🎆一、 查找元素索引(index))
      • [🎉1.1 `index()` 方法的用法:](#🎉1.1 index() 方法的用法:)
      • [🎉1.2 查找元素的索引](#🎉1.2 查找元素的索引)
      • [🎉1.3 使用 `start` 和 `end` 参数](#🎉1.3 使用 startend 参数)
      • [🎉1.4 如果元素不存在,会抛出异常](#🎉1.4 如果元素不存在,会抛出异常)
    • [🎆二、 插入元素(insert)](#🎆二、 插入元素(insert))
      • [🎉2.1 `insert()` 方法的语法:](#🎉2.1 insert() 方法的语法:)
      • [🎉2.2 在指定位置插入元素](#🎉2.2 在指定位置插入元素)
      • [🎉2.3 在列表的开头插入元素](#🎉2.3 在列表的开头插入元素)
      • [🎉2.4 在列表末尾插入元素(相当于 `append()` 方法)](#🎉2.4 在列表末尾插入元素(相当于 append() 方法))
      • [🎉2.5 使用负数索引插入元素](#🎉2.5 使用负数索引插入元素)
    • [🎆三、 追加元素(append与extend)](#🎆三、 追加元素(append与extend))
      • [🎉3.1 `append()` 方法](#🎉3.1 append() 方法)
        • [3.1.1 语法:](#3.1.1 语法:)
        • [3.1.2 示例:](#3.1.2 示例:)
      • [🎉3.2 `extend()` 方法](#🎉3.2 extend() 方法)
        • [3.2.1 语法:](#3.2.1 语法:)
        • [3.2.2 示例:](#3.2.2 示例:)
      • [🎉3.3 `append()` 与 `extend()` 的区别](#🎉3.3 append()extend() 的区别)
        • [3.3.1 区别示例:](#3.3.1 区别示例:)
    • [🎆四、 删除元素(`del`、`pop`与`remove`)](#🎆四、 删除元素(delpopremove))
      • [🎉4.1 `del` 关键字](#🎉4.1 del 关键字)
        • [4.1.1 语法:](#4.1.1 语法:)
        • [4.1.2 示例:](#4.1.2 示例:)
      • [🎉4.2 `pop()` 方法](#🎉4.2 pop() 方法)
        • [4.2.1 语法:](#4.2.1 语法:)
        • [4.2.2 示例:](#4.2.2 示例:)
      • [🎉4.3 `remove()` 方法](#🎉4.3 remove() 方法)
        • [4.3.1 语法:](#4.3.1 语法:)
        • [4.3.2 示例:](#4.3.2 示例:)
      • 总结
    • [🎆五、 清空列表(clear)](#🎆五、 清空列表(clear))
      • [🎉5.1 `clear()` 方法的语法:](#🎉5.1 clear() 方法的语法:)
      • [🎉5.2 使用 `clear()` 清空列表:](#🎉5.2 使用 clear() 清空列表:)
      • [🎉5.3 与 `del` 对比](#🎉5.3 与 del 对比)
      • [🎉5.4 什么时候使用 `clear()`?](#🎉5.4 什么时候使用 clear()?)
      • 总结
    • [🎆六、 统计元素数量(count)](#🎆六、 统计元素数量(count))
      • [🎉6.1 `count()` 方法的语法:](#🎉6.1 count() 方法的语法:)
      • [🎉6.2 统计某个元素在列表中的出现次数:](#🎉6.2 统计某个元素在列表中的出现次数:)
      • [🎉6.3 统计列表中不存在的元素:](#🎉6.3 统计列表中不存在的元素:)
      • [🎉6.4 统计复杂类型的元素(如嵌套列表或元组):](#🎉6.4 统计复杂类型的元素(如嵌套列表或元组):)
      • 总结
    • [🎆七、 获取列表长度(len)](#🎆七、 获取列表长度(len))
      • [🎉7.1 `len()` 函数的语法:](#🎉7.1 len() 函数的语法:)
      • [🎉7.2 获取列表的长度:](#🎉7.2 获取列表的长度:)
      • [🎉7.3 获取空列表的长度:](#🎉7.3 获取空列表的长度:)
      • [🎉7.4 获取嵌套列表的长度:](#🎉7.4 获取嵌套列表的长度:)
      • 总结
    • 🎆八、遍历列表
      • [🎉8.1 使用 `for` 循环遍历列表](#🎉8.1 使用 for 循环遍历列表)
      • [🎉8.2 使用 `for` 循环和 `range()` 遍历列表(基于索引)](#🎉8.2 使用 for 循环和 range() 遍历列表(基于索引))
      • [🎉8.3 使用 `enumerate()` 函数遍历列表(同时获取索引和值)](#🎉8.3 使用 enumerate() 函数遍历列表(同时获取索引和值))
      • [🎉8.4 使用 `while` 循环遍历列表](#🎉8.4 使用 while 循环遍历列表)
      • [🎉8.5 使用列表推导式(列表解析)](#🎉8.5 使用列表推导式(列表解析))
      • 总结
    • 结语

前言

在Python编程中,列表(List)是一种非常基础且强大的数据结构,它用于存储一系列有序的元素。列表中的元素可以是不同类型的,这使得列表在数据处理和算法实现中非常灵活。本文将详细介绍Python中列表的常用操作,包括查找、插入、删除、遍历等,并通过代码实例进行演示和分析。


🎆一、 查找元素索引(index)

在 Python 列表中,你可以使用 index() 方法来查找某个元素的索引。它会返回该元素在列表中首次出现的索引。如果元素不存在,则会抛出 ValueError 异常。

🎉1.1 index() 方法的用法:

python 复制代码
# 语法
list_name.index(element, start, end)
  • element: 要查找的元素。
  • start: 可选参数,指定搜索的起始索引。
  • end: 可选参数,指定搜索的结束索引(不包括该索引)。

🎉1.2 查找元素的索引

python 复制代码
fruits = ["apple", "banana", "cherry", "banana"]

# 查找 "banana" 的索引
index_of_banana = fruits.index("banana")
print(index_of_banana)  # 输出: 1

🎉1.3 使用 startend 参数

python 复制代码
fruits = ["apple", "banana", "cherry", "banana"]

# 从索引2开始查找 "banana"
index_of_banana_after_2 = fruits.index("banana", 2)
print(index_of_banana_after_2)  # 输出: 3

🎉1.4 如果元素不存在,会抛出异常

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 尝试查找列表中不存在的元素
try:
    index_of_orange = fruits.index("orange")
except ValueError:
    print("元素不在列表中")  # 输出: 元素不在列表中

在使用 index() 时,确保列表中有该元素,否则需要处理 ValueError 异常。

🎆二、 插入元素(insert)

在 Python 列表中,你可以使用 insert() 方法在指定位置插入元素。

🎉2.1 insert() 方法的语法:

list_name.insert(index, element)
  • index: 要插入元素的位置。index 可以是负数,表示从列表末尾倒数的索引。
  • element: 要插入的元素。

🎉2.2 在指定位置插入元素

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 在索引 1 的位置插入 "orange"
fruits.insert(1, "orange")
print(fruits)  # 输出: ['apple', 'orange', 'banana', 'cherry']

🎉2.3 在列表的开头插入元素

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 在索引 0 的位置插入 "kiwi"
fruits.insert(0, "kiwi")
print(fruits)  # 输出: ['kiwi', 'apple', 'banana', 'cherry']

🎉2.4 在列表末尾插入元素(相当于 append() 方法)

如果索引超出了列表的长度范围,它会将元素添加到列表的末尾。

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 插入到末尾
fruits.insert(10, "watermelon")  # 即使索引 10 超出范围,也会插入到末尾
print(fruits)  # 输出: ['apple', 'banana', 'cherry', 'watermelon']

🎉2.5 使用负数索引插入元素

负数索引表示从列表的末尾开始计数。

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 使用 -1 作为索引,在 'cherry' 之前插入 "grape"
fruits.insert(-1, "grape")
print(fruits)  # 输出: ['apple', 'banana', 'grape', 'cherry']

insert() 方法非常灵活,可以在列表的任何位置插入元素。

🎆三、 追加元素(append与extend)

  • append()方法用于在列表的末尾追加一个新的元素。
  • 在 Python 列表中,你可以使用 append()extend() 方法来向列表追加元素,它们的作用略有不同:

🎉3.1 append() 方法

append() 方法在列表的末尾追加一个元素。这个元素可以是任意类型,包括列表,但它会作为一个整体元素添加到原列表中。

3.1.1 语法:
python 复制代码
list_name.append(element)
  • element: 要追加到列表末尾的元素。
3.1.2 示例:
python 复制代码
fruits = ["apple", "banana", "cherry"]

# 使用 append() 添加单个元素
fruits.append("orange")
print(fruits)  # 输出: ['apple', 'banana', 'cherry', 'orange']

# 使用 append() 添加一个列表作为整体元素
fruits.append(["grape", "watermelon"])
print(fruits)  # 输出: ['apple', 'banana', 'cherry', 'orange', ['grape', 'watermelon']]

在第二个示例中,整个 ["grape", "watermelon"] 被作为一个元素追加到列表中。

🎉3.2 extend() 方法

extend() 方法用于将一个可迭代对象(如列表、元组或字符串)的所有元素逐个添加到原列表中,而不是作为整体添加。

3.2.1 语法:
python 复制代码
list_name.extend(iterable)
  • iterable: 一个可迭代对象(例如列表、元组、字符串等)。
3.2.2 示例:
python 复制代码
fruits = ["apple", "banana", "cherry"]

# 使用 extend() 添加多个元素
fruits.extend(["orange", "grape"])
print(fruits)  # 输出: ['apple', 'banana', 'cherry', 'orange', 'grape']

# 使用 extend() 添加字符串的每个字符
fruits.extend("kiwi")
print(fruits)  # 输出: ['apple', 'banana', 'cherry', 'orange', 'grape', 'k', 'i', 'w', 'i']

在第一个 extend() 示例中,列表中的每个元素 "orange""grape" 被单独添加到原列表中。而在第二个示例中,字符串 "kiwi" 的每个字符被逐个添加。

🎉3.3 append()extend() 的区别

  • append() 将元素(或列表)作为单个元素添加到列表的末尾。
  • extend() 将可迭代对象的每个元素逐个添加到列表中。
3.3.1 区别示例:
python 复制代码
# 使用 append()
fruits = ["apple", "banana", "cherry"]
fruits.append(["orange", "grape"])
print(fruits)  # 输出: ['apple', 'banana', 'cherry', ['orange', 'grape']]

# 使用 extend()
fruits = ["apple", "banana", "cherry"]
fruits.extend(["orange", "grape"])
print(fruits)  # 输出: ['apple', 'banana', 'cherry', 'orange', 'grape']

append() 会将整个列表 ["orange", "grape"] 作为一个元素添加,而 extend() 则是将列表的每个元素拆开并添加到原列表中。

🎆四、 删除元素(delpopremove

  • 在 Python 中,可以通过 delpop()remove() 方法从列表中删除元素。它们的使用场景和效果各有不同。

🎉4.1 del 关键字

del 是 Python 的内置语法,用于删除列表中指定索引的元素,或者直接删除整个列表。

4.1.1 语法:
python 复制代码
del list_name[index]
  • index: 要删除元素的索引。可以是负数表示从末尾开始计数。
  • 你也可以删除列表的某个切片,或删除整个列表。
4.1.2 示例:

1. 删除指定索引的元素

python 复制代码
fruits = ["apple", "banana", "cherry", "orange"]

# 删除索引为1的元素 ("banana")
del fruits[1]
print(fruits)  # 输出: ['apple', 'cherry', 'orange']

2. 删除一个范围的元素(切片):

python 复制代码
fruits = ["apple", "banana", "cherry", "orange"]

# 删除索引1到2的元素 (不包括索引3)
del fruits[1:3]
print(fruits)  # 输出: ['apple', 'orange']

3. 删除整个列表

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 删除整个列表
del fruits
# 此时尝试访问 fruits 会抛出 NameError,因为它已被删除

🎉4.2 pop() 方法

pop() 方法用于删除并返回指定索引处的元素。如果不指定索引,pop() 会删除并返回列表中的最后一个元素。

4.2.1 语法:
python 复制代码
list_name.pop(index)
  • index: 可选参数,表示要删除元素的索引。如果不提供 index,则默认删除最后一个元素。
4.2.2 示例:

1. 删除并返回指定索引的元素

python 复制代码
fruits = ["apple", "banana", "cherry", "orange"]

# 删除并返回索引1处的元素 ("banana")
removed_fruit = fruits.pop(1)
print(removed_fruit)  # 输出: banana
print(fruits)  # 输出: ['apple', 'cherry', 'orange']

2. 删除并返回最后一个元素

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 删除并返回最后一个元素
removed_fruit = fruits.pop()
print(removed_fruit)  # 输出: cherry
print(fruits)  # 输出: ['apple', 'banana']

🎉4.3 remove() 方法

remove() 方法用于删除列表中第一次出现的指定元素。如果列表中不存在该元素,会抛出 ValueError

4.3.1 语法:
python 复制代码
list_name.remove(element)
  • element: 要删除的元素。如果列表中有重复元素,remove() 只删除第一次出现的那个。
4.3.2 示例:

1. 删除指定元素

python 复制代码
fruits = ["apple", "banana", "cherry", "banana"]

# 删除列表中第一次出现的 "banana"
fruits.remove("banana")
print(fruits)  # 输出: ['apple', 'cherry', 'banana']

2. 尝试删除不存在的元素:

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 如果尝试删除列表中不存在的元素,会抛出 ValueError
try:
    fruits.remove("orange")
except ValueError:
    print("元素不在列表中")  # 输出: 元素不在列表中

总结

  • del: 用于通过索引删除元素,可以删除多个元素或整个列表。无法返回被删除的元素。
  • pop(): 用于通过索引删除元素并返回被删除的元素。如果不提供索引,它会删除并返回最后一个元素。
  • remove() : 用于删除列表中第一次出现的指定元素(通过值删除)。如果元素不存在,则会抛出 ValueError

选择哪种方法取决于你的需求:

  • 如果需要通过索引删除并返回元素,使用 pop()
  • 如果只需要删除某个具体值,使用 remove()
  • 如果需要删除多个元素或删除列表的某个切片,可以使用 del

🎆五、 清空列表(clear)

在 Python 中,可以使用 clear() 方法来清空列表,即移除列表中的所有元素,使其变成一个空列表。

🎉5.1 clear() 方法的语法:

python 复制代码
list_name.clear()
  • clear() 不需要任何参数,调用后会删除列表中的所有元素,但列表对象本身仍然存在,只是变成了空列表。

🎉5.2 使用 clear() 清空列表:

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 清空列表
fruits.clear()
print(fruits)  # 输出: []

清空列表后,fruits 仍然是一个列表对象,但它现在是一个空列表。

🎉5.3 与 del 对比

  • clear() 只清空列表内容,但保留列表对象本身。
  • del 可以直接删除整个列表对象,使它不再存在。

使用 del 删除列表对象:

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 删除整个列表对象
del fruits

# 此时再尝试访问 fruits 会抛出 NameError,因为它已被删除
# print(fruits)  # NameError: name 'fruits' is not defined

🎉5.4 什么时候使用 clear()

  • 当你想要清空列表但保留列表对象用于后续操作时,可以使用 clear()
  • 如果你想完全移除列表对象(包括列表的引用),则使用 del

总结

  • clear() 是最直接的方式来清空列表内容,但不会删除列表对象。
  • 如果你想清空列表,且希望继续保留该列表以供后续使用,那么 clear() 是合适的选择。

🎆六、 统计元素数量(count)

在 Python 的列表中,你可以使用 count() 方法来统计列表中某个元素出现的次数。

🎉6.1 count() 方法的语法:

python 复制代码
list_name.count(element)
  • element: 你想统计的元素。

🎉6.2 统计某个元素在列表中的出现次数:

python 复制代码
fruits = ["apple", "banana", "cherry", "banana", "banana"]

# 统计 "banana" 出现的次数
banana_count = fruits.count("banana")
print(banana_count)  # 输出: 3

# 统计 "apple" 出现的次数
apple_count = fruits.count("apple")
print(apple_count)  # 输出: 1

🎉6.3 统计列表中不存在的元素:

如果统计的元素在列表中不存在,count() 会返回 0

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 统计 "orange" 出现的次数(元素不存在)
orange_count = fruits.count("orange")
print(orange_count)  # 输出: 0

🎉6.4 统计复杂类型的元素(如嵌套列表或元组):

如果列表中包含嵌套的列表、元组或其他复杂类型的数据,你可以统计它们作为一个整体元素出现的次数。

python 复制代码
nested_list = [[1, 2], [3, 4], [1, 2], [5, 6]]

# 统计 [1, 2] 出现的次数
nested_count = nested_list.count([1, 2])
print(nested_count)  # 输出: 2

总结

  • count() 方法用于统计列表中某个元素的出现次数,如果元素不存在则返回 0
  • 它可以用于统计基本数据类型和复杂数据类型(如列表、元组等)在列表中的出现次数。

🎆七、 获取列表长度(len)

在 Python 中,获取列表长度可以使用内置函数 len()len() 返回列表中元素的个数。

🎉7.1 len() 函数的语法:

python 复制代码
len(list_name)
  • list_name: 要获取长度的列表。

🎉7.2 获取列表的长度:

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 获取列表的长度
length = len(fruits)
print(length)  # 输出: 3

🎉7.3 获取空列表的长度:

python 复制代码
empty_list = []

# 获取空列表的长度
length = len(empty_list)
print(length)  # 输出: 0

🎉7.4 获取嵌套列表的长度:

len() 只返回列表顶层的元素个数,嵌套列表本身作为一个整体元素计数。

python 复制代码
nested_list = [[1, 2], [3, 4], [5, 6]]

# 获取嵌套列表的长度
length = len(nested_list)
print(length)  # 输出: 3

在这个例子中,尽管列表中包含嵌套的子列表,但 len() 只计算最外层列表的元素个数,所以返回 3

总结

  • len() 是获取列表长度的最简单方法,返回列表中所有元素的个数。
  • 它只计算列表的最外层元素,不会递归统计嵌套列表中的元素个数。

🎆八、遍历列表

在 Python 中,遍历列表可以通过多种方式进行。最常用的遍历方法是使用 for 循环。此外,还可以通过 while 循环或使用 enumerate() 函数获取索引和值。

🎉8.1 使用 for 循环遍历列表

for 循环是遍历列表最常用的方法,能够依次访问列表中的每个元素。

示例:

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 使用 for 循环遍历列表
for fruit in fruits:
    print(fruit)

输出:

sql 复制代码
apple
banana
cherry

🎉8.2 使用 for 循环和 range() 遍历列表(基于索引)

如果你需要在遍历过程中访问元素的索引,可以结合 range()len() 来基于索引进行遍历。

示例

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 使用 range() 和 len() 基于索引遍历列表
for i in range(len(fruits)):
    print(f"索引 {i}: {fruits[i]}")

输出

yaml 复制代码
索引 0: apple
索引 1: banana
索引 2: cherry

🎉8.3 使用 enumerate() 函数遍历列表(同时获取索引和值)

enumerate() 函数在遍历列表时可以同时获取元素的索引和值。

示例:

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 使用 enumerate() 遍历并同时获取索引和值
for index, fruit in enumerate(fruits):
    print(f"索引 {index}: {fruit}")

输出:

yaml 复制代码
索引 0: apple
索引 1: banana
索引 2: cherry

🎉8.4 使用 while 循环遍历列表

while 循环可以通过手动维护索引来遍历列表。

示例:

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 使用 while 循环遍历列表
i = 0
while i < len(fruits):
    print(fruits[i])
    i += 1

输出:

sql 复制代码
apple
banana
cherry

🎉8.5 使用列表推导式(列表解析)

如果你只想对列表中的每个元素执行某种操作并生成新的列表,可以使用列表推导式来遍历列表。

示例

python 复制代码
fruits = ["apple", "banana", "cherry"]

# 使用列表推导式
uppercase_fruits = [fruit.upper() for fruit in fruits]
print(uppercase_fruits)

输出:

css 复制代码
['APPLE', 'BANANA', 'CHERRY']

总结

  • for 循环: 最常用的遍历方法,适用于大多数情况。
  • range() + len(): 适合在遍历时需要使用索引的场景。
  • enumerate(): 同时获取索引和值的简洁方法。
  • while 循环: 适合需要手动控制遍历的场景。
  • 列表推导式: 用于对列表中的元素进行操作并生成新的列表。

结语

本文详细介绍了Python中列表的常用操作,包括查找、插入、删除、遍历等。列表作为一种灵活且强大的数据结构,在Python编程中发挥着重要作用。通过掌握列表的用法,我们可以更加高效地处理数据,提高编程效率和代码可读性。希望本文对你理解和使用Python列表有所帮助!

今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连 支持一下,17的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是17前进的动力!

相关推荐
风清扬雨12 分钟前
【计算机视觉】超简单!傅里叶变换的经典案例
人工智能·计算机视觉
一个不秃头的 程序员14 分钟前
代码加入SFTP JAVA ---(小白篇3)
java·python·github
逸_19 分钟前
dify工作流+github actions实现翻译并创建PR
gpt·github·dify
susu108301891119 分钟前
python实现根据搜索关键词爬取某宝商品信息
爬虫·python
HuggingFace20 分钟前
自动评估基准 | 设计你的自动评估任务
人工智能·自动评估
丁总学Java26 分钟前
--spring.profiles.active=prod
java·spring
上等猿34 分钟前
集合stream
java
GISer_Jing34 分钟前
神经网络初学总结(一)
人工智能·深度学习·神经网络
java1234_小锋37 分钟前
MyBatis如何处理延迟加载?
java·开发语言
菠萝咕噜肉i38 分钟前
MyBatis是什么?为什么有全自动ORM框架还是MyBatis比较受欢迎?
java·mybatis·框架·半自动