Q:

Name a list with Table

I am struggling to find a way to assign a value from a list to names from another pre-defined list with Table[].
names = {first, second, third}

numbers = {{1, 1}, {2, 2}, {3, 3}}

What I want is:
first = {1, 1}
second = {2, 2}
third = {3, 3}

so that {1, 1} is stored in first etc.
I tried the following:
namelists = Table[(names[[i]]) = (numbers[[i]]), {i, Length[names]}];

In this case, namelists[[1]] = {1, 1}, however first does not store any information...

A:

Clear[first, second, third]
names = {first, second, third}
numbers = {{1, 1}, {2, 2}, {3, 3}}
Table[Evaluate[names[[i]]] = numbers[[i]], {i, 3}]
first
second
third

A:

Clear[first, second, third]    

names = {first, second, third};
numbers = {{1, 1}, {2, 2}, {3, 3}};

With[{names = names}, names = numbers];

first

{1, 1}

A:

With the following definitions:
Clear[first, second, third]
names = {first, second, third}
numbers = {{1, 1}, {2, 2}, {3, 3}}

a one-liner approach would be:
Evaluate@names = numbers

You can see how this works using Trace:
Clear[first, second, third]
names = {first, second, third}
numbers = {{1, 1}, {2, 2}, {3, 3}}
Trace[Evaluate@names = numbers]

(* Out: 
{{names, {first, second, third}}, 
   {numbers, {{1, 1}, {2, 2}, {3, 3}}}, 
   {first, second, third} = {{1, 1}, {2, 2}, {3, 3}}, 
   {{1, 1}, {2, 2}, {3, 3}}} *)

