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

列表追加新条目时检查最后元素首值唯一性并实现覆盖的最优方法

最优实现:条件覆盖/追加列表末尾元素的逻辑

先明确需求场景:
现有二维列表:

existing_list = [[1, 2, 4, 5], [2, 4, 3, 4], [3, 3, 4, 5], [4, 1, 1, 2]]

要插入的新条目是[4, 5, 2, 3],规则是:如果新条目的首元素和列表最后一个元素的首元素相同,就覆盖最后一个元素;否则直接追加,最终得到目标列表。

最优实现方案(Python)

这个需求的最优解法是直接利用列表的索引特性,做一次常数时间的判断,代码简洁且效率拉满:

existing_list = [[1, 2, 4, 5], [2, 4, 3, 4], [3, 3, 4, 5], [4, 1, 1, 2]]
new_item = [4, 5, 2, 3]

# 先判断列表非空(避免空列表时索引越界),再对比首元素
if existing_list and existing_list[-1][0] == new_item[0]:
    existing_list[-1] = new_item
else:
    existing_list.append(new_item)

print(existing_list)
# 输出结果:[[1, 2, 4, 5], [2, 4, 3, 4], [3, 3, 4, 5], [4, 5, 2, 3]]

为什么这是最优的?

  • 时间复杂度O(1):不管列表长度多少,只需要访问最后一个元素的首值和新元素的首值做一次比较,没有循环或遍历,效率最高
  • 鲁棒性强:加入了existing_list非空的判断,避免了当原列表为空时,existing_list[-1]抛出IndexError的问题
  • 代码可读性高:逻辑直白,一眼就能看懂核心逻辑,后续维护成本极低

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:41:48