'Like :meth:`set` but also supports index/slice based setting.'

def __setitem__(self, key, value):

    if isinstance(key, (slice, integer_types)):
        if isinstance(key, integer_types):
            value = [value]
        value = [(k, _unicodify_header_value(v)) for (k, v) in value]
        [self._validate_value(v) for (k, v) in value]
        if isinstance(key, integer_types):
            self._list[key] = value[0]
        else:
            self._list[key] = value
    else:
        self.set(key, value)
