![](/img/trans.png)
[英]Is it len() function able to increase a for loop using enumerate() performance on python?
[英]How to replace using for loop in range(len) by using enumerate
有沒有一種簡單的方法可以使用enumerate
而不是帶有range(len)
的for
循環? 例如,在這里我循環用子數組的索引替換子數組中每個元素的所有值。
list = []
for i in range(len(nparray)):
j = [i]*(len(nparray[i]))
list.append(j)
我的nparray是具有6個子數組的np.array
,每個子np.array
都有不同的大小。
enumerate
不會代替for
的使用,只是使其變得更好。 但是,您可以使用列表理解: [[i]*len(x) for i,x in enumerate(nparray)]
並避免將list
用作變量名,因為altteady用作內置函數。
要使用枚舉器,首先需要聲明兩個目標變量,因為枚舉器返回一個元組。
在理解列表中使用您的示例,可能像這樣:
listR = [[idx]*(len(val)) for idx,val in enumerate(multiarray)]
如果您想深入https://docs.python.org/2/library/functions.html#enumerate
希望對您有所幫助。
問候
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.