# Dropping list elements from nested list after evaluation

I need to create a new list from a nested list but using the evaluation as criteria to drop the elements. For example let's say that that I have the following list:

list1={{1,1,-(-1)^3,x,2*x},{1,1,(-1)^3,x,2*x},
{1,1,x,2*x,3*x},{1,1,-x,-2*x,-3*x}}


and I need to eliminate the elements of list1 that the absolute value of the third element give $$1$$, i.d. $$-(-1)^3$$ and $$(-1)^3$$, to obtain

 list2={{1,1,x,2*x,3*x},{1,1,-x,-2*x,-3*x}}


In this case, list1 was created with the code

For[i = 1, i < 4, i++,
For[j = 1, j < 4, j++,
list1[i, j, p_] = Sort[Eigenvalues[mat[i, j, p]]];
]  ]


I have been trying to use Select but until now I am not been able to create list2 to plot it with

list2=ParallelTable[Select[Abs[eigval[i, j, p][]],
Abs[#] != 1 &] , {i, 1, 4}, {j,1,4}]


I am still learning to uses cases in Mathematica so I am not sure how to do it. Do you know if there is wise way to do it? Thanks in advance.

If you prefer using DeleteCases,

list2 = DeleteCases[list1, _?(Abs[#[]] == 1 &)]


{{1, 1, x, 2 x, 3 x}, {1, 1, -x, -2 x, -3 x}}

Delete[
list1,
Position[Abs[list1[[All, 3]]], 1]
]


{{1, 1, x, 2 x, 3 x}, {1, 1, -x, -2 x, -3 x}}

if you want to use Select, try this

Select[list1,!NumberQ@#[]||Abs[#[]]!=1&]


{{1, 1, x, 2 x, 3 x}, {1, 1, -x, -2 x, -3 x}}

This is pretty efficient on unpacked arrays (the Listable attribute assumes list1[[All, 3]] is a flat list, as it is in the OP's example):

Block[{signal},
SetAttributes[signal, Listable];
signal = 1; signal[_] = 0;
Pick[list1, signal@Abs[list1[[All, 3]]], 0]
]
(*  {{1, 1, x, 2 x, 3 x}, {1, 1, -x, -2 x, -3 x}}  *)


(For packed arrays, one would probably want to use Unitize[x-1] instead of signal.)