簡體   English   中英

如何使用枚舉替換range(len)中的for循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM