Что бы вы ни делали, не пытайтесь list = [{'open': False, 'serve': False}] * 150, так как у вас будет один и тот же словарь 150 раз. : D
Тогда вы получите забавное поведение, как
>>> list[0]['open'] = True
>>> list[1]['open'] = False
>>> print list[0]['open']
False
>>> list[0] is list[1]
True
Как отметил gs, в python 2.6 вы можете использовать namedtuple, что проще для памяти:
from collections import namedtuple
Socket = namedtuple('Socket', 'open serve')
sockets = [Socket(False,False) for i in range(150)]