Q:

Drop From One list and Take in other list

Suppose I have a list,
list = Table[{n}, {n, 1, 5}]
(*list = {{1},{2},{3},{4},{5}}*)

and I want to remove all values from this list that are greater than 3, so that I get
newlist = {{1}, {2}, {3}}

But the other values should be saved in another list called the drop list to this below as shown
droplist = {{4},{5}}

A:

TakeDrop[sort = Sort[list], LengthWhile[sort, First[#] < 4 &]]

{{{1},{2},{3}},{{4},{5}}}

As the reminder of Pillsy's answer here
GatherBy[list, 3 < First[#1] &]

{{{1}, {2}, {3}}, {{4}, {5}}}

A:

You can use GroupBy and Lookup to make sure that the two returned lists are in the order you expect:
{newlist, droplist} = 
 Lookup[GroupBy[list, 3 < First[#1] & ], {False, True}, {}];

The third argument to Lookup makes sure an empty list is returned if there aren't any True or False elements, instead of a potentially annoying Missing object.
newlist
(* {{1}, {2}, {3}} *)

droplist
(* {{4}, {5}} *)

A:

one option might be to use DeleteCases and then use Complement 
list = Table[{n}, {n, 1, 5}]
newList = DeleteCases[list, {x_} /; x > 3]

droppedList = Complement[list, newList]

