Package Bio :: Package EUtils :: Module MultiDict :: Class UnorderedMultiDict
[show private | hide private]
[frames | no frames]

Class UnorderedMultiDict

_BaseMultiDict --+
                 |
                UnorderedMultiDict


Store key/value mappings.

Acts like a standard dictionary with the following features:
>>> ud = UnorderedMultiDict([("Food", "Spam"), ("Color", "Blue"),
...                          ("Food", "Eggs"), ("Color", "Green")])
>>> ud["Food"]
'Eggs'

>>> ud.getall("Food")
['Spam', 'Eggs']

>>>

The order of values from a given key (as from ud.getall("Food")) is guaranteed but the order between keys (as from od.allkeys() and od.allitems()) is not.

Can also pass in an object to the constructor which has an allitems() method that returns a list of key/value pairs.
Method Summary
  __init__(self, multidict)
  __delitem__(self, key)
Remove all values for the given key
  __eq__(self, other)
Does this UnorderedMultiDict have the same keys, with values in the same order, as another?
  __ne__(self, other)
Does this UnorderedMultiDict NOT have the same keys, with values in the same order, as another?
  __repr__(self)
  __setitem__(self, key, value)
Add a new key/value pair
  allitems(self)
iterate over all key/value pairs, in arbitrary order
  allkeys(self)
iterate over all keys in arbitrary order
  allvalues(self)
iterate over all values in arbitrary order
    Inherited from _BaseMultiDict
  __contains__(self, key)
check if the key exists
  __getitem__(self, key)
value for a given key
  __iter__(self)
iterate through the list of unique keys
  __len__(self)
the number of unique keys
  __str__(self)
shows contents as if this is a dictionary
  get(self, key, default)
value for the given key; default = None if not present
  getall(self, key)
Get all values for a given key
  items(self)
unordered list of key/value pairs
  keys(self)
unordered list of unique keys
  values(self)
unordered list of values

Method Details

__delitem__(self, key)
(Index deletion operator)

Remove all values for the given key

__eq__(self, other)
(Equality operator)

Does this UnorderedMultiDict have the same keys, with values in the same order, as another?

__ne__(self, other)

Does this UnorderedMultiDict NOT have the same keys, with values in the same order, as another?

__setitem__(self, key, value)
(Index assignment operator)

Add a new key/value pair

If the key already exists, replaces the existing value so that d[key] is the new value and not the old one.

To get all values for a given key, use d.getall(key).

allitems(self)

iterate over all key/value pairs, in arbitrary order

Actually, the keys are iterated in arbitrary order but all values for that key are iterated at sequence of addition to the UnorderedMultiDict.

allkeys(self)

iterate over all keys in arbitrary order

allvalues(self)

iterate over all values in arbitrary order

Generated by Epydoc 2.1 on Thu Mar 31 20:15:38 2005 http://epydoc.sf.net