python入门 到脱坑 基本数据类型—列表

以下是Python列表(List)的入门详解,包含基础操作、常用方法和实用技巧,适合初学者系统掌握:


一、列表基础

1. 定义列表

# 空列表
empty_list = []

# 包含不同类型元素的列表
mixed_list = [1, "apple", 3.14, True]

# 嵌套列表
matrix = [[1, 2], [3, 4]]

2. 列表特性

  • 有序:元素按添加顺序存储
  • 可变:可随时修改内容
  • 支持索引:从0开始计数

二、基础操作

1. 访问元素

fruits = ["apple", "banana", "orange"]

# 正向索引(从0开始)
print(fruits[0])   # "apple"

# 负向索引(从-1开始)
print(fruits[-1])  # "orange"

# 嵌套列表访问
matrix = [[1, 2], [3, 4]]
print(matrix[0][1])  # 2

2. 切片操作

numbers = [0, 1, 2, 3, 4, 5]

print(numbers[1:4])   # [1, 2, 3](1到3号元素)
print(numbers[:3])    # [0, 1, 2](前3个元素)
print(numbers[::2])   # [0, 2, 4](步长为2)

3. 修改列表

# 修改单个元素
fruits[1] = "pear"  # ["apple", "pear", "orange"]

# 修改切片
numbers[1:3] = [9, 8]  # [0, 9, 8, 3, 4, 5]

三、常用方法

1. 增删元素

方法

描述

示例

append(x)

末尾添加元素

fruits.append("grape")

insert(i, x)

指定位置插入

fruits.insert(1, "peach")

remove(x)

删除首个匹配值

fruits.remove("apple")

pop([i])

删除并返回指定位置元素

fruits.pop(0)

clear()

清空列表

fruits.clear()

2. 列表操作

方法

描述

示例

extend(iterable)

合并另一个可迭代对象

fruits.extend(["kiwi", "mango"])

index(x)

返回元素索引

fruits.index("banana")

count(x)

统计元素出现次数

[1,2,1].count(1) → 2

sort()

原地排序

numbers.sort(reverse=True)

reverse()

原地反转

fruits.reverse()

3. 列表复制

# 浅拷贝(创建新对象)
new_list = old_list.copy()
# 或
new_list = old_list[:]

# 深拷贝(解决嵌套列表引用问题)
import copy
deep_copy = copy.deepcopy(nested_list)

四、列表生成式

1. 基本语法

# 生成平方数列
squares = [x**2 for x in range(5)]  # [0, 1, 4, 9, 16]

2. 带条件的生成式

# 只保留偶数
evens = [x for x in range(10) if x % 2 == 0]  # [0, 2, 4, 6, 8]

3. 嵌套循环

# 矩阵展开
matrix = [[1, 2], [3, 4]]
flat = [num for row in matrix for num in row]  # [1, 2, 3, 4]

五、实用技巧

1. 遍历列表(同时获取索引)

for index, value in enumerate(fruits):
    print(f"Index {index}: {value}")

2. 随机选择元素

import random
print(random.choice(fruits))  # 随机选一个
random.shuffle(fruits)        # 打乱列表顺序

3. 列表合并

# 方法1:extend()
list1.extend(list2)

# 方法2:+运算
combined = list1 + list2

# 方法3:解包(Python 3.5+)
merged = [*list1, *list2]

4. 列表去重

unique = list(set(duplicate_list))  # 简单但会打乱顺序
# 保持顺序的去重
from collections import OrderedDict
unique = list(OrderedDict.fromkeys(duplicate_list))

六、常见问题

Q1: 如何判断列表是否为空?

if not my_list:
    print("列表为空")

Q2: 为什么修改切片会影响原列表?

a = [1, 2, 3]
b = a[:]  # 创建副本而非引用
b[0] = 9
print(a)  # [1, 2, 3](原列表不变)

Q3: 如何高效处理大型列表?

# 使用生成器表达式节省内存
sum(x**2 for x in range(1000000))  # 不创建临时列表

七、性能注意事项

操作

时间复杂度

说明

索引/赋值(lst[i])

O(1)

随机访问极快

append()/pop()

O(1)

尾部操作高效

insert(0)/pop(0)

O(n)

头部操作慢

x in lst

O(n)

需要遍历检查

sort()

O(n log n)

快速排序算法

建议:频繁头部操作时考虑collections.deque

八、下一步学习建议

  1. 练习:尝试用列表实现购物车、学生成绩管理等小程序
  2. 进阶:学习列表与NumPy数组的区别
  3. 扩展:了解map()、filter()等函数式编程工具

相关文章

三种不同方式,教你详细解析python反转列表(建议收藏)

今天为大家带来的内容是:三种不同方式,教你详细解析python反转列表(建议收藏)文章主要介绍了python反转列表的三种方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学...

python入门经典案例—list列表翻转列表

在 Python 中,翻转(反转)列表是一个基础但重要的操作。以下是几种常用的方法及其详细说明:1. 使用切片操作(最简洁)my_list = [1, 2, 3, 4, 5] reversed_lis...

7 种在 Python 中反转列表的智能方法

1. 使用reverse()方法(原地)my_list=[10,12,6,34,23] my_list.reverse() print(my_list) #output:[23, 34, 6, 12,...

python列表(List)必会的13个核心技巧(附实用方法)

列表(List)是Python入门的关键步骤,因为它是编程中最常用的数据结构之一。以下是高效掌握列表的核心技巧和实用方法:一、理解列表的本质可变有序集合:可随时修改内容,保持元素顺序混合类型:一个列表...

Python 中反转字符串:不可变性的解释

在 Python 中, 字符串是不可变的 ,这意味着一旦创建了一个字符串,它就不能被更改 。这种不可变性使得在严格意义上无法原地反转字符串,因为您不能修改原始字符串对象。看看下面的代码:s = ...