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

Python中如何实现仅当元素未存在时才执行append追加操作

代码修改实现

原逻辑没有做重复值校验,会导致同一个index被多次追加到group_id列表中,只需要在追加前增加成员判断,确认index不存在于目标列表时再执行追加操作即可,修改后代码如下:

for index, codec in enumerate(codecs):
    for audio in filter(lambda x: x['hls']['codec_name'] == codec, job['audio']):
        # 校验index未被追加过才执行插入
        if index not in audio['hls']['group_id']:
            audio['hls']['group_id'].append(index)

可选性能优化

如果group_id存储的元素量级较大,列表的in操作时间复杂度为O(n),频繁校验会带来额外性能开销,可以将group_id初始化为集合(set)类型:集合本身自动去重,成员判断时间复杂度为O(1),不需要额外写判断逻辑,直接调用add方法就不会插入重复值:

# 初始化阶段将group_id定义为集合,替代原有的列表
# 例:audio['hls']['group_id'] = set()

for index, codec in enumerate(codecs):
    for audio in filter(lambda x: x['hls']['codec_name'] == codec, job['audio']):
        audio['hls']['group_id'].add(index)

# 如果后续业务逻辑要求group_id必须是列表类型,全部处理完成后统一转换即可
# 例:audio['hls']['group_id'] = list(audio['hls']['group_id'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:21:14