列表删除除了remove还有其他办法吗?

a=[[5, 0, -5, 1509, 3], [5, 2, 0, -3, 1509], [0, 2, 5, -3, -3], [0, 0, 5, 3, 1509], [5, 2, -5, 3, -3]]
怎么变成:[[5,3],[5,2],[2,5],[5,3],[5,2,3]]
删除所有小于等于0,以及大于五的数,列表长度个数不确定,我尝试用for 循环 + remove但是只会删除出现的第一个数,请问怎么办?

a=[[5, 0, -5, 1509, 3], [5, 2, 0, -3, 1509], [0, 2, 5, -3, -3], [0, 0, 5, 3, 1509], [5, 2, -5, 3, -3]]

a = [[ j for j in i if not (j <= 0 or j > 5)] for i in a]
print(a)

可以遍历列表所有元素,判断元素值,达到条件的记录index便利完后pop弹出