首页 > 解决方案 > python - 在指示列表时发出变异列表

问题描述

我正在尝试创建一个函数,该函数将使用 for 循环指示列表,并为每个元素连接一个重复项。然而问题是这range(len(L))似乎是静态的,导致了时髦的结果。

所以L = [1, 2, 3, 4]应该返回[1, 1, 2, 2, 3, 3, 4, 4]。相反,它返回[1, 1, 2, 3, 4]

我已经通过指示 2 来调整 len(L) 的增加。我也尝试过在循环内分配x = len(L)、使用和重新分配。range(0,x,2)然而,最大值i实际上仍然是 len(L)/2。使用range(0,len(L)*2,2)隐藏了问题,但感觉非常不合时宜。

def doubleL(L):
    for i in range(0,len(L),2):
        L=L[:i]+[L[i]]+L[i:]

    return L

我已经使用带有 while 循环的相同逻辑成功地创建了它。

标签: pythonlistfor-loopindices

解决方案


推荐阅读