Python字典、列表有方法总结
以下是 Python 中字典(dict)和列表(list)所有方法的详细说明,包含作用描述和使用示例:
一、字典(dict)方法
1. 基础操作方法
| 方法 | 作用 | 示例 |
|---|---|---|
clear() |
清空字典 | d.clear() → {} |
copy() |
浅拷贝字典 | new_d = d.copy() |
fromkeys(keys, value) |
从键列表创建新字典 | dict.fromkeys(['a','b'], 0) → {'a':0, 'b':0} |
get(key, default) |
安全获取值(键不存在返回默认值) | d.get('x', 'not found') |
items() |
返回键值对视图 | for k,v in d.items(): |
keys() |
返回键视图 | list(d.keys()) |
values() |
返回值视图 | list(d.values()) |
2. 更新/修改方法
| 方法 | 作用 | 示例 |
|---|---|---|
update(other_dict) |
合并字典 | d.update({'x':1}) |
setdefault(key, default) |
键不存在时设置默认值 | d.setdefault('x', []).append(1) |
pop(key, default) |
删除键并返回值 | val = d.pop('x') |
popitem() |
删除并返回最后插入的键值(Python 3.7+有序) | k,v = d.popitem() |
3. 高级方法(Python 3+)
| 方法 | 作用 | 示例 |
|---|---|---|
__missing__() |
当 __getitem__ 找不到键时调用 |
需子类化实现 |
reversed() |
逆序键视图(Python 3.8+) | for k in reversed(d): |
使用示例
# 创建字典
d = {'a': 1, 'b': 2}
# 安全访问
print(d.get('c', 0)) # 输出: 0
# 更新字典
d.update({'c': 3}) # d → {'a':1, 'b':2, 'c':3}
# 字典推导式
{k: v*2 for k,v in d.items()}
二、列表(list)方法
1. 元素操作
| 方法 | 作用 | 示例 |
|---|---|---|
append(x) |
末尾添加元素 | lst.append(4) |
extend(iterable) |
合并可迭代对象 | lst.extend([4,5]) |
insert(i, x) |
在索引i处插入x | lst.insert(1, 'x') |
remove(x) |
删除第一个值为x的元素 | lst.remove(2) |
pop(i) |
删除并返回索引i的元素(默认-1) | lst.pop() |
2. 查询/统计
| 方法 | 作用 | 示例 |
|---|---|---|
index(x, start, end) |
返回x的索引 | lst.index(2) |
count(x) |
统计x出现次数 | lst.count(2) |
sort(key, reverse) |
原地排序 | lst.sort(reverse=True) |
reverse() |
原地逆序 | lst.reverse() |
3. 列表特性方法
| 方法 | 作用 | 示例 |
|---|---|---|
copy() |
浅拷贝列表 | new_lst = lst.copy() |
clear() |
清空列表 | lst.clear() → [] |
__reversed__() |
返回逆序迭代器 | for x in reversed(lst): |
使用示例
# 创建列表
lst = [1, 2, 3]
# 添加元素
lst.append(4) # [1,2,3,4]
lst.extend([5,6]) # [1,2,3,4,5,6]
# 排序
lst.sort(reverse=True) # [6,5,4,3,2,1]
# 列表推导式
[x*2 for x in lst if x>3] # [12,10,8]
三、关键区别
| 特性 | 字典(dict) | 列表(list) |
|---|---|---|
| 存储方式 | 键值对 | 有序序列 |
| 访问方式 | 键访问 d[key] |
索引访问 lst[0] |
| 内存占用 | 更高(哈希表) | 更低 |
| 查找速度 | O(1) | O(n) |
| Python版本特性 | 3.7+保持插入顺序 | 始终有序 |
四、最佳实践
字典场景
-
快速查找:当需要根据键快速检索值时
user_db = {'id1': {'name': 'Alice'}, 'id2': {'name': 'Bob'}} print(user_db.get('id1')) # 快速访问 -
去重计数:
from collections import defaultdict counts = defaultdict(int) for item in items: counts[item] += 1
列表场景
-
维护顺序:需要保持元素顺序时
log_records = [] log_records.append('event1') # 按时间顺序存储 -
栈/队列操作:
# 栈 stack = [] stack.append('push'); stack.pop() # 队列 (使用collections.deque更高效) from collections import deque queue = deque() queue.append('enqueue'); queue.popleft()
五、性能注意
-
字典:键必须是可哈希类型(不可变类型如字符串/数字/元组)
-
列表:
-
插入/删除开头元素用
collections.deque更高效 -
判断元素是否存在时,
x in set()比x in list快得多
-
掌握这些方法后,可以更高效地处理Python中的结构化数据!
郭慕荣博客园

浙公网安备 33010602011771号