查找大型数组列表的特定索引

时间:2019-01-10 07:38:51

标签: python arrays list indexing

我有一个不同长度的大型数组的列表。我想找到每个大于420的数组的位置。例如,[size =(134,7),size =(620,7),size =(800,7),......]

我的代码在下面

luajit.exe %~dp0%~n0.lua

我收到此错误:

for x in x_train:
       if len(x)>420:
           print(x_train.index(x))

什么是正确的解决方案?

2 个答案:

答案 0 :(得分:1)

这是警告某些东西已被弃用,但这不是错误。我非常怀疑您的代码块会产生此警告,并且可能是某些导入的库或其他代码引起的。

无论如何,关于您的代码,它效率极低,因为一旦找到x,您就会在列表中再次寻找它。使用enumerate来获取索引:

for i, x in enumerate(x_train):
    if len(x) > 420:
        print(i)

通过列表理解,您可以存储所有索引:

indexes = [i for i, x in enumerate(x_train) if len(x) > 420]

答案 1 :(得分:0)

让我们使用列表理解来解决它。

#Create a sample list of arrays of arbitrary length.
myList = [np.full((134,7), 10), np.full((620,7),0), np.full((800,7),0), np.full((150,7),0), np.full((500,7),0)]

indexes_gt_420 = [i for i in range(len(myList)) if len(myList[i]) > 420]
indexes_gt_420
     [1, 2, 4]