假设我们有一个嵌套的矩阵,如下所示:
nested_matrix = [
[['A', 1], ['B', 2], ['C', 3]],
[['D', 4], ['E', 5], ['F', 6]],
[['G', 7], ['H', 8], ['I', 9]]
]
现在,我们想要按行名过滤这个嵌套的矩阵。也就是说,我们要从每个子列表中删除那些行名与我们提供的列表不匹配的子列表。
代码实现如下:
def filter_nested_matrix(nested_matrix, row_names):
filtered_matrix = []
for matrix in nested_matrix:
filtered_matrix.append([row for row in matrix if row[0] in row_names])
return filtered_matrix
解释一下上面的代码:
我们定义了一个名为 filter_nested_matrix 的函数,该函数接受两个参数:嵌套的矩阵(nested_matrix)和行名列表(row_names)。
我们遍历了每个子列表,将符合条件的行添加到新的嵌套列表中(filtered_matrix)。
最后,我们返回新的嵌套列表。
让我们尝试使用上面的函数对嵌套矩阵进行过滤。我们想要保留行名为 A 和 D 的子列表。
row_names = ['A', 'D']
filtered_matrix = filter_nested_matrix(nested_matrix, row_names)
print(filtered_matrix)
输出结果:
[[['A', 1]], [['D', 4]]]
正如预期的那样,我们只保留了行名为 A 和 D 的子列表。
下一篇:按姓名和日期计算连续工作天数