Irit Katriel <iritkatr...@gmail.com> added the comment:

Indeed, as Terry wrote the assumption is that header is a mapping (not 
necessarily a dict). It is not hard to implement a Multimap that has this API:

import collections.abc

class Multimap(collections.abc.Mapping):
    def __init__(self):
        self.data = collections.defaultdict(list)

    def __getitem__(self, key):
        return self.data[key]

    def __setitem__(self, key, value):
        self.data[key].append(value)

    def __iter__(self):
        yield from self.data

    def items(self):
        for k in list(self.data.keys()):
            for v in list(self.data[k]):
                yield (k,v)

    def __len__(self):
        return sum([len(v) for v in self.data.values()])

mm = Multimap()
mm['1'] = 'a'
mm['1'] = 'aa'
mm['1'] = 'aaa'
mm['2'] = 'b'
mm['3'] = 'c'
mm['3'] = 'cc'
print(f'len = {len(mm)}')
print(f'mm.items() = {list(mm.items())}')

Output:
len = 6
mm.items() = [('1', 'a'), ('1', 'aa'), ('1', 'aaa'), ('2', 'b'), ('3', 'c'), 
('3', 'cc')]

----------
nosy: +iritkatriel
resolution: out of date -> not a bug
stage:  -> resolved
status: open -> closed

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue3276>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to