You need to define --names-list to take an arbitrary number of arguments.
parser.add_argument('-n', '--names-list', nargs="+", default=[])
Note that options with arbitrary number of arguments don’t typically play well with positional arguments, though:
# Is this 4 arguments to -n, or
# 3 arguments and a single positional argument, or ...
myprog.py -n a b c d