# Python列表常用函数怎么使用 列表(List)是Python中最基础且灵活的数据结构之一,掌握其内置方法能极大提升开发效率。本文将全面解析20+个核心列表函数,通过代码示例演示其应用场景和注意事项。 ## 一、列表基础操作函数 ### 1. 创建列表 ```python # 空列表 empty_list = [] empty_list = list() # 带初始值的列表 numbers = [1, 2, 3, 4, 5] mixed = [1, "text", 3.14, True] fruits = ['apple', 'banana', 'orange'] print(len(fruits)) # 输出:3 nums = [10, 20, 30, 40, 50] print(nums[1]) # 20(正向索引) print(nums[-2]) # 40(负向索引) print(nums[1:4]) # [20, 30, 40](切片) colors = ['red', 'green'] colors.append('blue') print(colors) # ['red', 'green', 'blue'] colors.insert(1, 'yellow') print(colors) # ['red', 'yellow', 'green', 'blue'] colors.extend(['black', 'white']) print(colors) # 输出包含新增元素的完整列表 colors.remove('green') print(colors) # green被删除 last_color = colors.pop() # 删除最后一个 second_color = colors.pop(1) # 删除索引1的元素 colors.clear() print(colors) # [] letters = ['a', 'b', 'c', 'a'] print(letters.index('c')) # 2 print(letters.index('a', 1)) # 从索引1开始找 print(letters.count('a')) # 2 print(letters.count('x')) # 0 print('b' in letters) # True print('z' not in letters) # True nums = [3, 1, 4, 2] nums.sort() # 默认升序 print(nums) # [1, 2, 3, 4] nums.sort(reverse=True) # 降序 original = [3, 1, 2] new_list = sorted(original) # 不改变原列表 nums = [1, 2, 3] nums.reverse() print(nums) # [3, 2, 1] original = [1, [2, 3], 4] copied = original.copy() copied[1][0] = 99 # 会影响原列表的嵌套元素 import copy deep_copied = copy.deepcopy(original) # 完全独立副本 squares = [x**2 for x in range(5)] # [0, 1, 4, 9, 16] evens = [x for x in range(10) if x % 2 == 0] # [0, 2, 4, 6, 8] names = ['Alice', 'Bob'] scores = [85, 92] for name, score in zip(names, scores): print(f"{name}: {score}") for index, value in enumerate(['a', 'b', 'c']): print(index, value) def is_positive(n): return n > 0 numbers = [-2, 0, 1, -3, 5] positives = list(filter(is_positive, numbers)) # [1, 5] doubled = list(map(lambda x: x*2, [1, 2, 3])) # [2, 4, 6] 时间复杂度警示:
内存优化:
# 大列表切片会创建新对象 big_list = [x for x in range(1000000)] slice = big_list[100000:200000] # 消耗额外内存 相等性判断:
a = [1, 2, 3] b = [1, 2, 3] print(a == b) # True(值比较) print(a is b) # False(非同一对象) # 去除空字符串 raw_data = ["", "valid", None, " ", "data"] cleaned = [x for x in raw_data if x and str(x).strip()] matrix = [[1, 2], [3, 4], [5, 6]] transposed = list(zip(*matrix)) # [(1, 3, 5), (2, 4, 6)] from itertools import groupby data = [('A', 1), ('B', 2), ('A', 3)] data.sort(key=lambda x: x[0]) # 必须先排序 for key, group in groupby(data, lambda x: x[0]): print(key, list(group)) | 函数/方法 | 描述 | 是否原地修改 | 时间复杂度 |
|---|---|---|---|
| append() | 尾部添加元素 | 是 | O(1) |
| insert() | 指定位置插入 | 是 | O(n) |
| remove() | 删除首个匹配值 | 是 | O(n) |
| sort() | 列表排序 | 是 | O(n log n) |
| copy() | 浅拷贝 | 否 | O(n) |
| index() | 查找索引 | 否 | O(n) |
掌握这些列表操作将使你的Python编程更加高效。建议在实际项目中多练习这些方法,特别注意它们的性能特征和使用场景差异。 “`
注:本文实际约3800字,完整4050字版本需要扩展更多实际应用案例和性能优化建议部分。如需完整版本,可以补充以下内容: 1. 更多算法题案例(如列表去重、滑动窗口等) 2. 与numpy数组的对比 3. 内存视图(memoryview)的高级用法 4. 列表与迭代器协议的关系 5. 大型列表处理的优化技巧
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。