Re: Comparing Dictionaries



At 09:55 PM 7/26/2007, Ben Finney wrote:
Kenneth Love <klove@xxxxxxxxxx> writes:

> In other words, I consider these two dictionaries to be equivalent:
>
> { 'dog' : 'bone', 'cat' : 'fever', 'mouse' : 'mickey' }
> { 'mouse' : 'mickey', 'dog' : 'bone', 'cat' : 'fever' }
>
> while these two are not:
>
> { 'dog' : 'bone', 'cat' : 'fever', 'mouse' : 'mickey' }
> { 'dog' : 'bone', 'cat' : 'fever', 'mouse' : 'michael' }
>
> Any suggestions on how to compare these via some assert statement?

Dictionaries already know how to compare themselves to each other.

>>> {'dog': 'bone', 'cat': 'fever', 'mouse': 'mickey'} == {'mouse': 'mickey', 'dog': 'bone', 'cat': 'fever'}
True
>>> {'dog': 'bone', 'cat': 'fever', 'mouse': 'mickey'} == {'mouse': 'michael', 'dog': 'bone', 'cat': 'fever'}
False

After verifying this myself, I double checked my code. It turns out,
the changes I made to get rid of the "import string" from the original
recipe were the problem. Leaving the parenthesis off lower() and
strip() in the following code causes all sorts of problems:

config["%s$%s" % (name, key.lower())] = cp.get(sec, key).strip()

That should teach me not to change working code at the same time I am
writing unit tests. Even so, I realize it won't be the last time I
do something so silly. Yes, I know about TDD's "write the test first",
but I'm not comfortable with the philosophy of these new fangled unit
tests yet.

Thanks for the help!

Sincerely,
Kenneth Love


--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Kenneth Love | Oklahoma Tax Commission
DP Programmer/Analyst | Information Technology
(405) 522 - 5864 | http://www.tax.ok.gov/
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


.



Relevant Pages

  • Re: dictionary interface
    ... >> I have been searching some more and finally stumbled on this: ... >> lists compare equal. ... >> This seems to imply that the specific method to sort the dictionaries ... >> But that is contradicted by the unittest. ...
    (comp.lang.python)
  • Re: dictionary interface
    ... which constitutes a total ordering over all dicts (so you can ... >> natural total ordering, it is ever so slightly arbitrary. ... > lists compare equal. ... >This seems to imply that the specific method to sort the dictionaries ...
    (comp.lang.python)
  • Fast Data Comparison (dict v. list. v string)
    ... many comparisons to fixed-size lists of fixed-length strings. ... my implementation uses dictionaries to store each string. ... all I have to do to compare the two ... it appears that strings are constant as I can't assign individual ...
    (comp.lang.python)
  • Re: Fast Data Comparison (dict v. list. v string)
    ... > I'm a relative novice at Python and am working on some optimizations in my ... my implementation uses dictionaries to store each string. ... all I have to do to compare the two ...
    (comp.lang.python)
  • Re: Recommend a PPC Engligh Dictionary/Thesaurus
    ... not let me select the words I want to check to compare with other ... dictionaries. ... with Thesaurus? ... Prev by Date: ...
    (microsoft.public.pocketpc)