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

Python中实现列表指定索引元素复制的更Pythonic方法

解决方案:Pythonic的列表指定索引元素复制

可以利用列表推导式结合集合快速查找,实现简洁高效的需求,代码如下:

def duplicate_elements(original_list, target_indices):
    # 把目标索引转为集合,提升查找效率
    target_set = set(target_indices)
    # 列表推导式:遍历原列表,目标索引的元素添加两次,其余添加一次
    return [value for idx, value in enumerate(original_list) 
            for _ in range(2 if idx in target_set else 1)]

验证示例

用你提供的测试数据验证:

old_list = [1,2,3,4,5,6,7,8,9,10]
target_indices = [4,5]
new_list = duplicate_elements(old_list, target_indices)
print(new_list)

输出:

[1, 2, 3, 4, 5, 5, 6, 6, 7, 8, 9, 10]

优势说明

  • 简洁性:用列表推导式替代显式的for循环+条件判断,符合Python"简洁优雅"的风格
  • 高效性:将目标索引转为集合,idx in target_set的时间复杂度为O(1),比原代码的多个or判断更高效,尤其当目标索引数量较多时
  • 灵活性:支持任意长度的列表,以及任意数量的目标索引(包括空索引集合,此时直接返回原列表)

场景适配

你的场景中固定48个元素的列表完全适用,只需传入对应列表和目标索引即可,示例:

# 48元素列表示例
long_list = list(range(1, 49))
# 指定多个索引
targets = [10, 20, 30]
result = duplicate_elements(long_list, targets)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 07:42:16