0

让我们将以下列表列表命名为yr = [[90], [91, 92, 93, 94, 95]]并将以下单个元素列表命名为nm = ['abc', 'abd', 'fgm']这里有一些 numpy 数组形式的数据,称为

d  = [ [95, 'abd', 'S', 432235],
       [94, 'abd', 'S', 432231],
       [91, 'abc', 'S', 343433],
       [92, 'abc', 'S', 342433],
       [94, 'abc', 'S', 344433],
       [90, 'abc', 'Z', 343234] ]

我想要做的是遍历 nm 的每个单个元素以及 yr 的列表元素,并提取相应的子集。例如,获取 b 的所有行,其中第二列等于 'abs' 并且第一列等于 [90, 91, 92, 93, 94, 95] 中的任何一个。我怎么能重复这样做,也就是说,对于表 nm 的每个单个元素和 yr 的每个列表元素?

编辑:

这是我希望返回的输出:

[[90, 'abc', 'Z', 343234]]
[[91, 'abc', 'S', 343433], [92, 'abc', 'S', 342433], [94, 'abc', 'S', 344433]]
[]
[[95, 'abd', 'S', 432235], [94, 'abd', 'S', 432231]]
[]
[]
4

1 回答 1

0

我不明白空行,因为你应该得到 18 个元素(6 个来自 yr * 3 个来自 nm)。

然后:

yr = [[90], [91, 92, 93, 94, 95]] 
nm = ['abc', 'abd', 'fgm'] 
d  = [[95, 'abd', 'S', 432235],
      [90, 'abc', 'S', 343433],
      [90, 'abc', 'Z', 343234]]


yr = [y for y in yr]    
for y in yr:
   for n in nm:
        for dd in d:
            print dd if dd[0] in y and dd[1] in n else '[[]]'

给出:

[[]]
[90, 'abc', 'S', 343433]
[90, 'abc', 'Z', 343234]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[95, 'abd', 'S', 432235]
[[]]
[[]]
[[]]
[[]]
[[]]
于 2013-09-25T08:25:09.253 回答