opening a text file and building a dictionary
There are more efficient ways to implement this:

1) If you only need a dictionary to keep your data together without semantics, you could split as follows:

&gt;&gt; line = "ajones Alice Jones 44 F alice@alicejones.net"
&gt;&gt; identifier, *userdata=line.split()


results in:

&gt;&gt; identifier
'ajones'
&gt;&gt; userdata
['Alice', 'Jones', '44', 'F', 'alice@alicejones.net']


That's a simple point to start, but as mentinoed, the resulting array is very dumb, i.e. you have no semantics about what is what. You end up with a simple array.

2) Another way is using named tuples

from collections import namedtuple

[...]
Userdata = namedtuple("Userdata", "first_name last_name age gender email")
[...]
key, firstname, lastname, age, gender, email = a.split()
user=Userdata(firstname, lastname, age, gender, email)


Now your user contains the data in a meaningful way:

&gt;&gt; user.last_name
'Jones'


Besides:
Your code looks a little bit messy. It's really hard, to get ones head around what you wrote. If you come again in 3 months i doubt, you understand anything you did above.

Your naming of variables is not only poor (list,value,newdict) but terribly misleading: 

for line in file_name:


You are not iterating over lines in file_name you are iterating over lines, which are perhaps from a file; in the function (and for python) it doesn't matter what the source is, but you should choose an apropriate name.

You make your and your peers life easier, if you try to write better, i.e. cleaner code.