如何使用枚举替换在范围(len)中使用for循环

时间:2017-06-06 05:19:11

标签: python numpy

是否有一种简单的方法可以使用enumerate代替for循环range(len)?例如,在这里我循环用它的子数组的索引替换子数组中每个元素的所有值。

list = []
for i in range(len(nparray)): 
    j = [i]*(len(nparray[i]))
    list.append(j)

我的nparray是np.array,有6个子数组,每个子数组都有不同的大小。

2 个答案:

答案 0 :(得分:3)

for无法取代[[i]*len(x) for i,x in enumerate(nparray)]的使用,只是让它变得更好。但是你可以使用列表理解: list

并且避免使用org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'libraryEntityManagerFactory' is defined作为变量名称,因为它已被用作内置函数。

答案 1 :(得分:1)

使用枚举器,首先需要声明两个目标变量,因为枚举器返回一个元组。

在理解列表中使用您的示例,它可能是这样的:

listR = [[idx]*(len(val)) for idx,val in enumerate(multiarray)]

如果你想要深https://docs.python.org/2/library/functions.html#enumerate

我希望这对你有所帮助。

此致