我有矩阵(类型列表),我只想选择适合我的条件的最后一行。具体来说,我有这个矩阵:
matrix = [
[[0], whatever0],
[[1], whatever1],
[[1, 0], whatever10],
[[1, 1], whatever11],
[[1, 2], whatever12],
[[1, 3], whatever13],
[[1, 4], whatever14],
]
我只想选择最后一行 i 使得 len(matrix[i][0]) == 1,所以答案应该返回 [[1],whatever1]。
尚未找到如何回答该特定问题。谢谢。
最佳答案
你可以这样做:
matrix = [
[[0], 'whatever0'],
[[1], 'whatever1'],
[[1, 0], 'whatever10'],
[[1, 1], 'whatever11'],
[[1, 2], 'whatever12'],
[[1, 3], 'whatever13'],
[[1, 4], 'whatever14'],
]
result = next((e for e in reversed(matrix) if len(e[0]) == 1), None)
print(result)
输出
[[1], 'whatever1']
说明
首先使用 reversed 向后迭代列表并仅返回具有 len(e[0]) == 1
的元素。然后用next只得到第一个结果。
关于python - 查找列表中符合条件的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53008597/