我可以用一个简单的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(可以通过变量而不是硬编码的数字交换其他任何两个元素)