让我们将以下列表列为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的list元素,并提取相应的子集。例如,获取第二列的所有行,其中第二列等于'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]]
[]
[]
答案 0 :(得分: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]
[[]]
[[]]
[[]]
[[]]
[[]]