You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中实现类似Perl的自动生成非连续数组(稀疏数组)?

在Python中实现稀疏数组的最简单方法

Perl里可以直接给未初始化的数组的超大索引赋值来创建稀疏数组,但Python的列表是连续内存结构,直接这么做会抛出IndexError: list assignment index out of range错误——因为列表当前长度不足,无法直接访问超出范围的索引。

在Python里实现稀疏数组功能,最简单的方式是使用字典(dict):用整数键模拟数组索引,值对应数组元素,只存储实际有值的索引,完全契合稀疏数组的特性。

示例代码:

# 初始化空字典作为稀疏数组
sparse_arr = {}
# 给指定索引赋值
sparse_arr[4321] = "blah"
# 访问已赋值的索引
print(sparse_arr[4321])  # 输出: blah

如果希望访问不存在的索引时不抛出KeyError,而是返回默认值(比如None),可以用collections模块的defaultdict:

from collections import defaultdict

# 初始化默认值为None的稀疏数组
sparse_arr = defaultdict(lambda: None)
sparse_arr[4321] = "blah"
# 访问未赋值的索引,返回默认值None
print(sparse_arr[123])  # 输出: None

内容的提问来源于stack exchange,提问作者Lucky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:15:18