Strangeness with type constructors in python
===

In python I can do things like:

    d = dict()
    i = int()
    f = float()
    l = list()

but there is no constructor for strings

    >>> s = string()
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    NameError: name 'string' is not defined

Why is that?  Or, IS there a constructor for string types?

Also, following the definitions above,
    
    d['a'] = 1

works, but

    >>> l[0] = 1
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    IndexError: list assignment index out of range

does not.

Can someone explain this to me?