Take elements from a list based on two criteria
Select[list, Count[#, 1] == 1&]
{{-1, 1}, {1, -1}, {1, (1 + I)/Sqrt[2]}}
Also
Pick[list, Lookup[Counts /@ list, 1, 0], 1]
{{-1, 1}, {1, -1}, {1, (1 + I)/Sqrt[2]}}
And alternative ways to use Cases
:
Cases[{OrderlessPatternSequence[1, Except[1]]}]@list
Cases[_?(Counts[#][1] == 1&)]@list
{{-1, 1}, {1, -1}, {1, (1 + I)/Sqrt[2]}}
You could use Cases
instead:
Cases[list, {1,Except[1]}|{Except[1],1}]
{{-1, 1}, {1, -1}, {1, (1 + I)/Sqrt[2]}}
Paranoid version of kglr's Count
solution:
Select[list, Total[Boole[PossibleZeroQ[# - 1]] & /@ #] == 1 &]
{{-1, 1}, {1, -1}, {1, (1 + I)/Sqrt[2]}}