我可以用一个简单的for循环来实现我想要的东西,但是我觉得有一种更容易实现相同目标的方法,我就是想不出来.对于列表中的第n个元素(有时是第n个和第m个,不止一个索引),我希望复制该元素,并使其他元素向下移动一.

例如,此脚本获取索引4和5处的元素并复制它:

 old_list = [1,2,3,4,5,6,7,8,9,10]
 new_list = []
    
 for idx, value in enumerate(old_list):
     if idx==4 or idx==5:
         new_list.append(value)
         new_list.append(value)
     else:
         new_list.append(value)
            

输出: new_list = [1, 2, 3, 4, 5, 5, 6, 6, 7, 8, 9, 10] new_list = [1, 2, 3, 4, 5, 5, 6, 6, 7, 8, 9, 10] new_list = [1, 2, 3, 4, 5, 5, 6, 6, 7, 8, 9, 10]

我确信,上面的脚本并不是最优的.但也证明了我的目标.

编辑:增加了问题陈述的清晰度.为了回答一些问题,

  • 在我的例子中,列表总是有48个元素,但我对任何长度都很好奇
  • 我想复制任何声明的元素索引(有时两个索引,有时没有).在这个例子中,元素4和5(可以通过变量而不是硬编码的数字交换其他任何两个元素)

推荐答案

你可以try 以下方法:

new_list = [value for idx, value in enumerate(old_list) 
            for __ in range(2 if idx == 4 or idx == 5 else 1)]  

Python相关问答推荐

连接两个具有不同标题的收件箱

将整组数组拆分为最小值与最大值之和的子数组

numba jitClass,记录类型为字符串

2D空间中的反旋算法

如何在Python脚本中附加一个Google tab(已经打开)

如何调整QscrollArea以正确显示内部正在变化的Qgridlayout?

启动带有参数的Python NTFS会导致文件路径混乱

dask无groupby(ddf. agg([min,max])?''''

ruamel.yaml dump:如何阻止map标量值被移动到一个新的缩进行?

Python日志(log)模块如何在将消息发送到父日志(log)记录器之前向消息添加类实例变量

Python—在嵌套列表中添加相同索引的元素,然后计算平均值

Pandas在rame中在组内洗牌行,保持相对组的顺序不变,

SpaCy:Regex模式在基于规则的匹配器中不起作用

python3中np. divide(x,y)和x/y有什么区别?'

有了Gekko,可以创建子模型或将模型合并在一起吗?

时长超过24小时如何从Excel导入时长数据

是否需要依赖反转来确保呼叫方和被呼叫方之间的分离?

在MongoDB文档中仅返回数组字段

如何将验证器应用于PYDANC2中的EACHY_ITEM?

如何通过特定导入在类中执行Python代码