Python中列表的操作(超详细版)

Python中的列表(超详细) 列表 列表的创建 列表的特点 列表的查询操作 1.获取列表中指定元素的索引 index() 2.获取列表中的单个元素 3.获取列表中的多个元素 4.判断指定元素在列表中是否存在 5.列表元素的增加 6.列表元素的删除 7.列表元素的修改操作 8.列表元素的排序操作 9.列表生成式(生成列表的公式) 阅读详情

Python中列表的操作(超详细版)

前言

列表(List)是Python中最核心、最常用的数据结构之一。它就像一个"万能容器",可以存放任意类型的数据,并且支持增删改查等各种操作。无论是数据处理、算法实现,还是项目开发,列表都是你离不开的工具。

本文将系统讲解Python列表的6大核心知识点,从基础定义到高级操作,一篇文章带你彻底掌握列表!


一、列表的定义

列表是由一系列按特定顺序排列的元素组成的集合,用 方括号 [] 表示,元素之间用逗号隔开。

1.1 基本定义方式

python

# 空列表
empty_list = []
print(empty_list)  # []

# 存放同类型数据
numbers = [1, 2, 3, 4, 5]
fruits = ['苹果', '香蕉', '橘子']
print(fruits)  # ['苹果', '香蕉', '橘子']

# 存放不同类型数据(Python列表支持)
mixed = [1, 'hello', 3.14, True, None]
print(mixed)  # [1, 'hello', 3.14, True, None]

# 嵌套列表(二维列表)
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix)  # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

1.2 使用 list() 构造函数

python

# 从字符串转列表
s = "hello"
print(list(s))  # ['h', 'e', 'l', 'l', 'o']

# 从元组转列表
t = (1, 2, 3)
print(list(t))  # [1, 2, 3]

# 从 range 生成列表
print(list(range(5)))     # [0, 1, 2, 3, 4]
print(list(range(1, 10, 2)))  # [1, 3, 5, 7, 9]

# 创建指定长度的列表
zeros = [0] * 5
print(zeros)  # [0, 0, 0, 0, 0]

1.3 列表推导式(高级定义)

python

# 生成1-10的平方列表
squares = [x**2 for x in range(1, 11)]
print(squares)  # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

# 带条件的列表推导式(只取偶数)
evens = [x for x in range(1, 21) if x % 2 == 0]
print(evens)  # [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

# 嵌套循环的列表推导式
pairs = [(x, y) for x in [1, 2] for y in ['a', 'b']]
print(pairs)  # [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')]

二、列表的索引

列表中的每个元素都有对应的位置编号,从 0 开始正向编号,或从 -1 开始反向编号。

2.1 正向索引(从0开始)

python

fruits = ['苹果', '香蕉', '橘子', '西瓜', '葡萄']

# 索引:  0       1       2       3       4
print(fruits[0])   # 苹果
print(fruits[1])   # 香蕉
print(fruits[3])   # 西瓜
print(fruits[4])   # 葡萄

# 获取列表长度
print(len(fruits))  # 5
print(fruits[len(fruits) - 1])  # 葡萄(最后一个元素)

2.2 反向索引(从-1开始)

python

fruits = ['苹果', '香蕉', '橘子', '西瓜', '葡萄']

# 索引:  -5      -4      -3      -2      -1
print(fruits[-1])  # 葡萄(最后一个)
print(fruits[-2])  # 西瓜
print(fruits[-3])  # 橘子

2.3 索引使用注意事项

python

fruits = ['苹果', '香蕉', '橘子']

# ✅ 正确索引
print(fruits[0])  # 苹果
print(fruits[2])  # 橘子

# ❌ 索引越界错误
# print(fruits[3])  # IndexError: list index out of range

# ❌ 负索引不能小于 -len(list)
# print(fruits[-4])  # IndexError

三、列表的切片

切片可以从列表中截取一部分,创建新列表,语法为 list[start:end:step]。

3.1 基本切片语法

python

fruits = ['苹果', '香蕉', '橘子', '西瓜', '葡萄', '草莓', '芒果']

# 语法:list[起始:结束:步长]
# 包含起始位置,不包含结束位置

print(fruits[0:3])   # ['苹果', '香蕉', '橘子'](索引0-2)
print(fruits[2:5])   # ['橘子', '西瓜', '葡萄'](索引2-4)
print(fruits[:3])    # ['苹果', '香蕉', '橘子'](省略起始,从0开始)
print(fruits[3:])    # ['西瓜', '葡萄', '草莓', '芒果'](省略结束,到末尾)
print(fruits[:])     # 全部元素(复制整个列表)

3.2 步长(Step)

python

fruits = ['苹果', '香蕉', '橘子', '西瓜', '葡萄', '草莓', '芒果']

# 每隔一个取一个
print(fruits[::2])  # ['苹果', '橘子', '葡萄', '芒果']

# 从索引1开始,每隔一个取一个
print(fruits[1::2])  # ['香蕉', '西瓜', '草莓']

# 反转列表(最常用)
print(fruits[::-1])  # ['芒果', '草莓', '葡萄', '西瓜', '橘子', '香蕉', '苹果']

3.3 切片的高级用法

python

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 取前3个
print(numbers[:3])        # [0, 1, 2]

# 取后3个
print(numbers[-3:])       # [7, 8, 9]

# 取除了前3个的所有
print(numbers[3:])        # [3, 4, 5, 6, 7, 8, 9]

# 取除了后3个的所有
print(numbers[:-3])       # [0, 1, 2, 3, 4, 5, 6]

# 取中间部分
print(numbers[2:7])       # [2, 3, 4, 5, 6]

# 取奇数索引的元素
print(numbers[1::2])      # [1, 3, 5, 7, 9]

# 取偶数索引的元素
print(numbers[::2])       # [0, 2, 4, 6, 8]

# 复制列表(两种方式)
new_list1 = numbers[:]    # 方式1
new_list2 = numbers.copy() # 方式2
print(new_list1 == new_list2)  # True

3.4 切片 vs 直接赋值(重要)

python

# 直接赋值:两个变量指向同一个列表
a = [1, 2, 3]
b = a
b.append(4)
print(a)  # [1, 2, 3, 4](a也被修改了)

# 切片复制:创建新列表
a = [1, 2, 3]
b = a[:]
b.append(4)
print(a)  # [1, 2, 3](a不受影响)
print(b)  # [1, 2, 3, 4]

3.5 切片赋值(替换部分元素)

python

# 使用切片替换部分元素
numbers = [1, 2, 3, 4, 5, 6]
numbers[1:4] = [10, 20, 30]
print(numbers)  # [1, 10, 20, 30, 5, 6]

# 切片替换的元素个数可以不同
numbers = [1, 2, 3, 4, 5]
numbers[1:3] = [10, 20, 30, 40]
print(numbers)  # [1, 10, 20, 30, 40, 4, 5]

# 删除切片(赋值为空列表)
numbers = [1, 2, 3, 4, 5]
numbers[1:4] = []
print(numbers)  # [1, 5]

四、列表的遍历

遍历列表即逐个访问列表中的每个元素。

4.1 for 循环直接遍历(最常用)

python

fruits = ['苹果', '香蕉', '橘子', '西瓜']

for fruit in fruits:
    print(fruit)
# 输出:
# 苹果
# 香蕉
# 橘子
# 西瓜

# 遍历时修改元素(需要索引)
numbers = [1, 2, 3, 4, 5]
for i, num in enumerate(numbers):
    numbers[i] = num * 2
print(numbers)  # [2, 4, 6, 8, 10]

4.2 通过索引遍历(使用 range)

python

fruits = ['苹果', '香蕉', '橘子', '西瓜']

for i in range(len(fruits)):
    print(f"索引{i}:{fruits[i]}")
# 输出:
# 索引0:苹果
# 索引1:香蕉
# 索引2:橘子
# 索引3:西瓜

4.3 同时获取索引和元素(enumerate)

python

fruits = ['苹果', '香蕉', '橘子', '西瓜']

# 默认索引从0开始
for i, fruit in enumerate(fruits):
    print(f"{i}: {fruit}")
# 0: 苹果
# 1: 香蕉
# 2: 橘子
# 3: 西瓜

# 指定起始索引
for i, fruit in enumerate(fruits, start=1):
    print(f"{i}: {fruit}")
# 1: 苹果
# 2: 香蕉
# 3: 橘子
# 4: 西瓜

4.4 while 循环遍历

python

fruits = ['苹果', '香蕉', '橘子', '西瓜']
i = 0
while i < len(fruits):
    print(fruits[i])
    i += 1
# 依次输出:苹果、香蕉、橘子、西瓜

4.5 遍历嵌套列表

python

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 遍历二维列表
for row in matrix:
    for col in row:
        print(col, end=' ')
    print()
# 输出:
# 1 2 3 
# 4 5 6 
# 7 8 9

# 使用索引遍历
for i in range(len(matrix)):
    for j in range(len(matrix[i])):
        print(f"matrix[{i}][{j}] = {matrix[i][j]}")

4.6 遍历的经典场景

python

# 1. 找出所有符合条件的元素
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = []
for num in numbers:
    if num % 2 == 0:
        even_numbers.append(num)
print(even_numbers)  # [2, 4, 6, 8, 10]

# 2. 计算总和
numbers = [10, 20, 30, 40, 50]
total = 0
for num in numbers:
    total += num
print(total)  # 150

# 3. 查找最大值
numbers = [23, 45, 12, 67, 34, 89]
max_num = numbers[0]
for num in numbers:
    if num > max_num:
        max_num = num
print(max_num)  # 89

# 4. 列表去重
numbers = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
unique = []
for num in numbers:
    if num not in unique:
        unique.append(num)
print(unique)  # [1, 2, 3, 4]

五、列表的常用方法(超全汇总)

5.1 增加元素

方法说明示例
append(x)在末尾添加一个元素[1,2].append(3) → [1,2,3]
insert(i, x)在指定位置插入元素[1,2].insert(1,3) → [1,3,2]
extend(iterable)在末尾添加多个元素[1,2].extend([3,4]) → [1,2,3,4]
+拼接两个列表[1,2] + [3,4] → [1,2,3,4]
*重复列表[1,2] * 3 → [1,2,1,2,1,2]

python

# append - 追加单个元素
fruits = ['苹果', '香蕉']
fruits.append('橘子')
print(fruits)  # ['苹果', '香蕉', '橘子']

# insert - 在指定位置插入
fruits.insert(1, '西瓜')
print(fruits)  # ['苹果', '西瓜', '香蕉', '橘子']

# extend - 追加多个元素
fruits.extend(['草莓', '芒果'])
print(fruits)  # ['苹果', '西瓜', '香蕉', '橘子', '草莓', '芒果']

# + 拼接(创建新列表)
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = list1 + list2
print(list3)  # [1, 2, 3, 4, 5, 6]

# * 重复
print([1, 2, 3] * 3)  # [1, 2, 3, 1, 2, 3, 1, 2, 3]

5.2 删除元素

方法说明示例
remove(x)删除第一个匹配的元素[1,2,2].remove(2) → [1,2]
pop(i)删除指定位置元素并返回[1,2,3].pop(1) → 2
pop()删除最后一个元素并返回[1,2,3].pop() → 3
clear()清空列表[1,2].clear() → []
del删除元素或列表del list[0] 或 del list
切片赋值删除切片[1,2,3][1:2] = [] → [1,3]

python

# remove - 删除第一个匹配的元素
numbers = [1, 2, 3, 2, 4, 2]
numbers.remove(2)
print(numbers)  # [1, 3, 2, 4, 2](只删除第一个)
# numbers.remove(5)  # ValueError: 5 not in list

# pop - 删除并返回元素
fruits = ['苹果', '香蕉', '橘子', '西瓜']
last = fruits.pop()
print(last)    # 西瓜
print(fruits)  # ['苹果', '香蕉', '橘子']
second = fruits.pop(1)  # 删除索引1的元素
print(second)  # 香蕉
print(fruits)  # ['苹果', '橘子']

# clear - 清空列表
fruits.clear()
print(fruits)  # []

# del - 删除元素或列表
fruits = ['苹果', '香蕉', '橘子', '西瓜']
del fruits[1]   # 删除索引1的元素
print(fruits)   # ['苹果', '橘子', '西瓜']
del fruits[1:3] # 删除切片
print(fruits)   # ['苹果']
# del fruits    # 删除整个列表
# print(fruits)  # NameError

# 删除所有匹配的元素(循环删除)
numbers = [2, 1, 2, 3, 2, 4, 2]
while 2 in numbers:
    numbers.remove(2)
print(numbers)  # [1, 3, 4]

5.3 查找与统计

方法说明示例
index(x)查找元素索引,不存在报错[1,2,3].index(2) → 1
count(x)统计元素出现次数[1,2,2].count(2) → 2
in判断是否包含2 in [1,2,3] → True
not in判断是否不包含4 not in [1,2,3] → True

python

fruits = ['苹果', '香蕉', '橘子', '香蕉', '西瓜']

# index - 查找第一个匹配的索引
print(fruits.index('香蕉'))   # 1
print(fruits.index('香蕉', 2)) # 3(从索引2开始找)

# count - 统计出现次数
print(fruits.count('香蕉'))  # 2
print(fruits.count('草莓'))  # 0

# in / not in
print('苹果' in fruits)   # True
print('草莓' in fruits)   # False
print('芒果' not in fruits) # True

5.4 排序与反转

方法说明示例
sort()升序排序(改变原列表)[3,1,2].sort() → [1,2,3]
sort(reverse=True)降序排序(改变原列表)[3,1,2].sort(reverse=True) → [3,2,1]
reverse()反转列表(改变原列表)[1,2,3].reverse() → [3,2,1]
sorted()返回排序后的新列表sorted([3,1,2]) → [1,2,3]
reversed()返回反转的迭代器list(reversed([1,2,3])) → [3,2,1]

python

# sort - 永久排序(修改原列表)
numbers = [3, 1, 4, 1, 5, 9, 2]
numbers.sort()
print(numbers)  # [1, 1, 2, 3, 4, 5, 9]

# sort(reverse=True) - 降序
numbers.sort(reverse=True)
print(numbers)  # [9, 5, 4, 3, 2, 1, 1]

# 自定义排序(根据字符串长度)
words = ['Python', 'Java', 'C', 'JavaScript']
words.sort(key=len)
print(words)  # ['C', 'Java', 'Python', 'JavaScript']

# sorted - 临时排序(返回新列表,原列表不变)
numbers = [3, 1, 4, 1, 5, 9, 2]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # [1, 1, 2, 3, 4, 5, 9]
print(numbers)         # [3, 1, 4, 1, 5, 9, 2](原列表不变)

# sorted(reverse=True) - 临时降序
print(sorted(numbers, reverse=True))  # [9, 5, 4, 3, 2, 1, 1]

# reverse - 反转列表
fruits = ['苹果', '香蕉', '橘子']
fruits.reverse()
print(fruits)  # ['橘子', '香蕉', '苹果']

# 使用切片反转(创建新列表)
fruits = ['苹果', '香蕉', '橘子']
reversed_fruits = fruits[::-1]
print(reversed_fruits)  # ['橘子', '香蕉', '苹果']
print(fruits)           # ['苹果', '香蕉', '橘子']

5.5 复制列表

方法说明示例
copy()浅拷贝[1,2].copy() → [1,2]
list()浅拷贝list([1,2]) → [1,2]
[:]浅拷贝[1,2][:] → [1,2]
copy.deepcopy()深拷贝(需导入copy模块)复制嵌套列表

python

# 浅拷贝 - 创建新列表,但嵌套元素仍共享
original = [1, 2, [3, 4]]
copy1 = original.copy()
copy2 = original[:]
copy3 = list(original)

print(copy1)  # [1, 2, [3, 4]]
print(copy2)  # [1, 2, [3, 4]]
print(copy3)  # [1, 2, [3, 4]]

# 浅拷贝的问题:嵌套列表仍指向同一对象
original[2][0] = 99
print(copy1)  # [1, 2, [99, 4]](copy1也被修改了)

# 深拷贝 - 完全独立复制
import copy
original = [1, 2, [3, 4]]
deep_copy = copy.deepcopy(original)
original[2][0] = 99
print(deep_copy)  # [1, 2, [3, 4]](不受影响)

5.6 其他内置函数

函数说明示例
len()获取长度len([1,2,3]) → 3
max()获取最大值max([1,2,3]) → 3
min()获取最小值min([1,2,3]) → 1
sum()求和(数字列表)sum([1,2,3]) → 6
any()是否有True元素any([0,0,1]) → True
all()是否所有元素为Trueall([1,2,3]) → True

python

numbers = [10, 20, 30, 40, 50]

print(len(numbers))  # 5
print(max(numbers))  # 50
print(min(numbers))  # 10
print(sum(numbers))  # 150

# any / all
print(any([0, 0, 1]))  # True(有真值)
print(any([0, 0, 0]))  # False
print(all([1, 2, 3]))  # True(全为真值)
print(all([1, 0, 2]))  # False(有假值)

六、列表推导式(高级用法)

列表推导式是Python中快速生成列表的优雅方式。

6.1 基本列表推导式

python

# 生成1-10的平方
squares = [x**2 for x in range(1, 11)]
print(squares)  # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

# 等价于传统循环
squares = []
for x in range(1, 11):
    squares.append(x**2)

6.2 带条件的列表推导式

python

# 取1-20中的偶数
evens = [x for x in range(1, 21) if x % 2 == 0]
print(evens)  # [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

# 取既能被2整除又能被3整除的数
nums = [x for x in range(1, 51) if x % 2 == 0 and x % 3 == 0]
print(nums)  # [6, 12, 18, 24, 30, 36, 42, 48]

6.3 嵌套列表推导式

python

# 矩阵转置
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
transpose = [[row[i] for row in matrix] for i in range(3)]
print(transpose)  # [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

# 展开嵌套列表
nested = [[1, 2], [3, 4], [5, 6]]
flatten = [x for sublist in nested for x in sublist]
print(flatten)  # [1, 2, 3, 4, 5, 6]

6.4 带条件表达式的列表推导式

python

# 将奇数变为"奇数",偶数变为"偶数"
nums = [1, 2, 3, 4, 5, 6]
result = ['奇数' if x % 2 == 1 else '偶数' for x in nums]
print(result)  # ['奇数', '偶数', '奇数', '偶数', '奇数', '偶数']

七、列表作为栈和队列

7.1 栈(LIFO - 后进先出)

python

# 使用 append 和 pop 实现栈
stack = []

# 压栈
stack.append(1)
stack.append(2)
stack.append(3)
print(stack)  # [1, 2, 3]

# 出栈
print(stack.pop())  # 3
print(stack.pop())  # 2
print(stack)        # [1]

7.2 队列(FIFO - 先进先出)

python

# 使用 append 和 pop(0) 实现队列(效率低)
from collections import deque

# 使用 deque 实现高效队列
queue = deque()

# 入队
queue.append(1)
queue.append(2)
queue.append(3)
print(queue)  # deque([1, 2, 3])

# 出队
print(queue.popleft())  # 1
print(queue.popleft())  # 2
print(queue)           # deque([3])

八、综合实战案例

8.1 学生成绩管理系统

python

students = [
    {'name': '张三', 'scores': [85, 90, 78]},
    {'name': '李四', 'scores': [92, 88, 95]},
    {'name': '王五', 'scores': [70, 75, 80]}
]

# 计算每个学生的平均分
for student in students:
    avg = sum(student['scores']) / len(student['scores'])
    print(f"{student['name']} 的平均分:{avg:.1f}")
# 输出:
# 张三 的平均分:84.3
# 李四 的平均分:91.7
# 王五 的平均分:75.0

# 找出最高分
all_scores = [score for student in students for score in student['scores']]
print(f"最高分:{max(all_scores)}")  # 95

8.2 列表去重(多种方法)

python

# 方法1:使用集合(顺序可能改变)
numbers = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
unique = list(set(numbers))
print(unique)  # [1, 2, 3, 4](顺序不确定)

# 方法2:使用字典(保持顺序,Python 3.7+)
unique = list(dict.fromkeys(numbers))
print(unique)  # [1, 2, 3, 4]

# 方法3:列表推导式(保持顺序)
unique = []
[unique.append(x) for x in numbers if x not in unique]
print(unique)  # [1, 2, 3, 4]

8.3 列表分组

python

# 将数字按奇偶分组
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even = [x for x in numbers if x % 2 == 0]
odd = [x for x in numbers if x % 2 == 1]
print(f"偶数:{even}")  # [2, 4, 6, 8, 10]
print(f"奇数:{odd}")   # [1, 3, 5, 7, 9]

8.4 二维列表操作(矩阵)

python

# 创建3x3单位矩阵
matrix = [[1 if i == j else 0 for j in range(3)] for i in range(3)]
print(matrix)  # [[1, 0, 0], [0, 1, 0], [0, 0, 1]]

# 矩阵相加
A = [[1, 2], [3, 4]]
B = [[5, 6], [7, 8]]
C = [[A[i][j] + B[i][j] for j in range(2)] for i in range(2)]
print(C)  # [[6, 8], [10, 12]]

8.5 列表排序(按指定规则)

python

# 按元组第二个元素排序
pairs = [(1, 3), (4, 1), (2, 5), (3, 2)]
pairs.sort(key=lambda x: x[1])
print(pairs)  # [(4, 1), (3, 2), (1, 3), (2, 5)]

# 按字符串长度排序
words = ['Python', 'Java', 'C', 'JavaScript', 'Go']
words.sort(key=len)
print(words)  # ['C', 'Go', 'Java', 'Python', 'JavaScript']

# 按字符串最后一个字母排序
words = ['apple', 'banana', 'cherry', 'date']
words.sort(key=lambda x: x[-1])
print(words)  # ['banana', 'apple', 'date', 'cherry']

九、常见错误与注意事项

9.1 修改列表时遍历的错误

python

# ❌ 错误:遍历时删除元素会导致索引错乱
numbers = [1, 2, 3, 4, 5]
for num in numbers:
    if num % 2 == 0:
        numbers.remove(num)
print(numbers)  # [1, 3, 5](勉强正确,但不可靠)

# ✅ 正确:遍历副本
numbers = [1, 2, 3, 4, 5]
for num in numbers[:]:  # 遍历副本
    if num % 2 == 0:
        numbers.remove(num)
print(numbers)  # [1, 3, 5]

# ✅ 更优:使用列表推导式
numbers = [1, 2, 3, 4, 5]
numbers = [num for num in numbers if num % 2 != 0]
print(numbers)  # [1, 3, 5]

9.2 浅拷贝 vs 深拷贝

python

# ❌ 浅拷贝:嵌套列表会被共享
original = [[1, 2], [3, 4]]
copy = original[:]
original[0][0] = 99
print(copy)  # [[99, 2], [3, 4]](copy也被修改了)

# ✅ 深拷贝:完全独立
import copy
original = [[1, 2], [3, 4]]
deep_copy = copy.deepcopy(original)
original[0][0] = 99
print(deep_copy)  # [[1, 2], [3, 4]](不受影响)

9.3 列表作为函数参数

python

# ❌ 列表作为默认参数会被共享
def add_item(item, lst=[]):
    lst.append(item)
    return lst

print(add_item(1))  # [1]
print(add_item(2))  # [1, 2](不是[2]!)

# ✅ 使用 None 作为默认值
def add_item(item, lst=None):
    if lst is None:
        lst = []
    lst.append(item)
    return lst

print(add_item(1))  # [1]
print(add_item(2))  # [2]

9.4 性能优化

python

# ❌ 频繁使用 + 拼接(每次创建新列表)
result = []
for i in range(10000):
    result = result + [i]  # 效率极低

# ✅ 使用 append
result = []
for i in range(10000):
    result.append(i)  # 效率高

# ✅ 使用列表推导式(最快)
result = [i for i in range(10000)]  # 最推荐

总结

本文详细介绍了Python列表的6大核心知识点:

知识点要点
定义[]、list()、列表推导式
索引正向从0开始,反向从-1开始
切片list[start:end:step],灵活截取和复制
遍历for循环、enumerate、while循环
常用方法增删改查、排序、反转、复制等
列表推导式快速生成列表的优雅方式

重点掌握:

  1. 索引和切片是列表操作的基础

  2. 列表推导式是Python的特色语法

  3. 浅拷贝和深拷贝的区别

  4. 排序时 sort() 和 sorted() 的区别

  5. 遍历列表时不要直接修改原列表


希望这篇教程能帮助你全面掌握Python列表操作!如果觉得有用,欢迎点赞、收藏、评论!🚀


下一篇预告:Python中字典的操作,敬请期待!

Python列表操作汇总 列表是Python中最基本的一个数据结构,也是会经常用到的一种数据类型,本文主要介绍列表的常见操作:创建、更新、访问、排序等。 阅读详情

相关推荐

【MDC开发者课程】MDC功能软件-归控算法介绍

规控算法

博客标题不能为空我也没办法 1844

Python序列详解:列表、元组、字符串的通用操作(超详细版)

Python序列是学习Python数据结构的重要基础。核心知识点:listtuplestr有序支持索引支持切片len()in切片添加元素删除元素修改元素遍历排序掌握序列操作后,可以为后面的Python数据处理、爬虫、自动化、数据分析打下坚实基础。

2301_81666833的博客 446

C#上位机实战:借助NetToPLCSim与西门子S7-1200仿真通信全攻略

本文详细介绍了如何使用C#开发上位机程序,通过NetToPLCSim与西门子S7-1200进行仿真通信的全过程。从环境准备、PLC仿真环境搭建、网络配置到C#代码实现,提供了完整的实战指南和常见问题解决方案,帮助开发者快速掌握工业自动化通信技术。

weixin_30596343的博客 440

Python之列表(超详细)

列表是一种数据容器,用中括号"[ ]"表示。在一个列表中可以存放多个元素,这些元素的类型可以相同,也可以不同。在数据结构上,列表与C语言的数组类似,可以使用下标索引访问每一个元素

8X_I的博客 1万+

避开爬虫坑:手把手教你合法获取百度地图POI边界数据(以学校为例)

本文详细介绍了如何合规获取百度地图POI边界数据的方法论,特别以学校为例。通过解析POI数据结构、合法使用百度地图API接口、优化请求策略以及数据处理技巧,帮助开发者和研究者在遵守平台规则的前提下高效获取地理信息。适用于学术研究、商业分析等多种场景,确保数据采集的合法性与准确性。

weixin_28683065的博客 394

UE5.3与Colosseum配置实战:从编译到问题解决的全流程指南

本文提供了在Windows系统下配置UE5.3与Colosseum仿真环境的全流程实战指南。详细介绍了从软件版本选择、源代码获取、编译脚本执行到解决常见编译错误和引擎崩溃问题的具体步骤,旨在帮助开发者高效搭建无人机、机器人等仿真平台,并顺利运行外部API控制。

weixin_29002595的博客 557

Python的列表基础知识点(超详细流程)

Python列表是一种非常常用的数据结构,用于存储有序的元素集合,列表中存在的方法分别有list( )、len( )、append( )、insert( )、pop( )、del、“+”、“*”、reverse( )、count( )、sort( )、min( )等方法

小星袁 4833

基于STM32的最简易蓝牙遥控小车

基于STM32的蓝牙遥控小车,基于HAL库编写代码,具有移动功能,读者可自行添加其他扩展功能。按下状态的对应关系:2前进,4左转,5停止,6右转,8后退,松开状态都是5,都选择16进制。首先按照小车的图纸把小车的机械部分装好。做这个小车的成本在200元左右,包括焊接设备,杜邦线等。

weixin_43469377的博客 1万+

Python列表操作详解

前言: 1、列表的创建与删除 1.1 创建有两种方式 1.2 列表特点: 2、列表的查询操作 2.1 给元素查索引 2.2 给索引查元素 2.3 获取列表中多个元素 2.4 使用循环遍历列表 3、列表元素的增,删,改 3.1 增添元素: 3.1.1 使用append()函数增添元素: 3.1.2 使用extend()函数增添元素: 3.1.3 使用insert()函数增添元素: 3.1.4 使用切片方法增添元素: 3.2 删除: 3.2.1 使用r

KaiqiangLiu的博客 4311

HyperLynx(十五)多板仿真

在对话框的“Design file#1”下拉列表中选择“B00,Mainboard”,在其下方的“Reference designators”列表中选择元器件“J1”,然后在“Designfile#2”下拉列表中选择“BO1、RAM1”,在其下方的“Refer ence designators”列表中选择元器件“J1”,单击“Insert”按钮,为这两个元器件建立互连映射。在“Assign Models”对话框中,选择“B00 Motherboard”,将“U16.B12”设置为输出。

小幽余生不加糖 5062

高项备考论文:规划绩效域

高项备考论文:规划绩效域

liuxu324的博客 1129

Python 列表 (list) 全面详解(超详细版)

本文全面介绍了Python列表的核心特性和使用方法。列表作为有序可变序列,支持存储多种数据类型和重复元素,具有动态扩容能力。文章详细讲解了列表的创建方式(直接赋值和list()函数)、核心操作(增删改查、遍历、切片、拼接)、常用内置方法(count、sort、reverse等)以及高级特性(列表推导式、深浅拷贝)。特别强调了使用中的注意事项,如避免下标越界、遍历删除的正确方式、sort与sorted的区别等。通过大量示例代码,帮助读者掌握这一Python中最基础且重要的数据结构,提高数据处理效率。

weixin_41147796的博客 2114

一台NAS两个系统:飞牛nas上完美运行群晖DSM?(飞牛nas+群晖nas套娃安装实操)

想在飞牛NAS上体验群晖DSM系统?💡 本文详细记录了飞牛nas上部署群晖的完整过程,从镜像转换到系统安装,每一步都有详细说明 🖥️,让你在不增加硬件成本的情况下,轻松实现一套硬件、多种系统的灵活部署 ✅

XiaoqiangClub的博客 2382

python列表的基础操作

python的list 是非常基础的,相当于cpp的vector的扩展。显然按秩寻访是最为基本的,然后不一样的在于还有类似链表,栈和队列相似的操作。这里需要注意几点列表之内的元素不要求同一类型,所以极为方便。这一点很像cpp的struct而且还不需要声明类型,所以需要我们记住具体的类型。所以python里面最常见的一种bug就是列表传入的数据不是我们想要的类型。或者为空。凡是看到这里的人一定会犯这个错误的,逃不了的!!!列表的本质上是容器,最常见的是包含字符串,数字,自定义的对象。

qq_34786604的博客 5336

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

python列表超详细

python列表(增、删、改、查、排序)

m0_62771110的博客 966

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

python列表常用操作函数,python列表函数有哪些

列表是 Python 中最基本的数据结构。列表中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推用python画简单笑脸代码。列表都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python 已经内置确定序列的长度以及确定最大和最小的元素的方法。列表是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型list列表的本质是一种有序的集合。

Fixf4556的博客 1368

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Python中列表的常用操作

1、列表的格式:变量A的类型为列表 namesList = ['xiaoWang','xiaoZhang','xiaoHua'] 比C语言的数组强大的地方在于列表中的元素可以是不同类型的 比如:testList = [1, 'a'] 2、打印出列表的数据 一、列表的循环遍历 1、for循环遍历 2、while循环遍历 二、列表的添加操作 1、append() 通过append可以向列表(尾部)添加元素 2、extend() 通过extend可以将另一个集合中...

qq_45629649的博客 1万+

Python列表超详细用法

【代码】Python列表超详细用法。

weixin_69411403的博客 1928

Python 学习中,什么是列表,如何操作列表?

在Python中,列表(List)是一种内置的数据结构,用于存储一系列有序的元素。列表中的元素可以是任意类型,比如整数、字符串、浮点数,甚至是另一个列表。列表是可变的(mutable),这意味着可以在创建列表后修改它。

Itmastergo的博客 1338

python列表创建操作_python列表操作

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。如 list = ['a','b',2,5,'1']1、新建列表stus = [] #创建空列表stus1 = list() #创建空列表print(stus)print(stus1)stus= ['范冰冰','维达','SOON','上述'] #创建非空列表print(st...

weixin_39927683的博客 524

python列表操作大全

列表相关操作 #1. 添加元素append 、 extend 、insert # li2 = [1, 'b', 'c', 'd'] # li2.append([2, 3, 4]) # append整体添加在原来列表后面 [1, 'b', 'c', 'd', [2, 3, 4]] # li2.extend([2, 3, 4]) # extend 分散添加, 将另外一个类型中的元素逐一添加 [1, 'b', 'c', 'd', 2, 3, 4] # li2.insert(1, '5') .

weixin_58520733的博客 3188

python的列表操作

在编程的世界里,数据结构是不可或缺的一部分,而列表(List)是Python中最常用的数据结构之一。作为一名初学者,我最近深入学习了Python列表的操作方法,并在这里分享我的学习心得,希望能帮助到同样在学习Python的朋友们。print(my_list) # 输出:[10, 200, 25, 30, 40, 50, 60]print(my_list) # 输出:[10, 200, 30, 40, 50, 60]print(my_list) # 输出:[10, 200, 30, 40, 50, 60]

qq_74175927的博客 713

Python基础之列表操作详解

《Python 列表操作详解》文档深入全面地介绍了 Python 中列表这一重要数据结构的各种操作方法。内容涵盖了列表的创建、访问元素、添加和删除元素、列表切片、排序、反转等核心操作。通过详细的代码示例和清晰的解释,帮助读者快速掌握列表的特性和用法。无论是初学者想要打好基础,还是有一定经验的开发者希望深入理解列表以提高编程效率,这份文档都能提供有价值的参考。

m0_46311182的博客 1041

Python列表的切片操作

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。**获取指定范围的子列表:**使用[start:end]的形式,其中start表示起始索引(包含),end表示结束索引(不包含)。最后祝大家天天进步!

Trb601012的博客 1922

在python中、列表中的元素可以是_Python列表操作集合

对于python列表里元素的操作主要分为以下几个方面:1、向列表里面加元素;向python列表里面添加元素主要有三种方法:(1)append()append()对于列表的操作主要实现的是在特定的列表最后添加一个元素,并且只能一次添加一个元素,并且只能在列表最后;m.append(元素A)(2)extend()extend()对于列表的操作主要实现的是对于特定列表的扩展和增长,可以一次添加多个元素,...

weixin_39663593的博客 1794

python列表操作函数大全_Python列表操作函数

列表可以进行多个数据的存储,同时python中的列表设计非常到位,它可以实现内容动态扩充,可以进行后期数据的删除,这些就需要通过Python提供的列表操作函数来实现了。对于Python语言而言,开发者肯定要记住一些常用的函数,同事对于一些不常用的函数需要自己进行文档的查看列表操作函数append(data) 在列表最后追加新内容clear() 清除列表数据copy() ...

weixin_39796152的博客 608
上一篇: Python中字符串的操作(超详细版)
下一篇: Python字典,核心编程必备技能,建议收藏!
python666Lc
博客等级 码龄126天 1粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值