Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #3905
| From | Raymond Hettinger <python@rcn.com> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: suggestions, comments on an "is_subdict" test |
| Date | 2011-04-23 00:23 -0700 |
| Organization | http://groups.google.com |
| Message-ID | <f2d50a1d-13c4-47f1-813c-a636fe3314f2@j35g2000prb.googlegroups.com> (permalink) |
| References | <mailman.747.1303480525.9059.python-list@python.org> <4db19756$0$81473$e4fe514c@news.xs4all.nl> <mailman.754.1303485531.9059.python-list@python.org> |
On Apr 22, 8:18 am, MRAB <pyt...@mrabarnett.plus.com> wrote:
> On 22/04/2011 15:57, Irmen de Jong wrote:
>
>
>
>
>
>
>
> > On 22-4-2011 15:55, Vlastimil Brom wrote:
> >> Hi all,
> >> I'd like to ask for comments or advice on a simple code for testing a
> >> "subdict", i.e. check whether all items of a given dictionary are
> >> present in a reference dictionary.
> >> Sofar I have:
>
> >> def is_subdict(test_dct, base_dct):
> >> """Test whether all the items of test_dct are present in base_dct."""
> >> unique_obj = object()
> >> for key, value in test_dct.items():
> >> if not base_dct.get(key, unique_obj) == value:
> >> return False
> >> return True
>
> >> I'd like to ask for possibly more idiomatic solutions, or more obvious
> >> ways to do this. Did I maybe missed some builtin possibility?
>
> > I would use:
>
> > test_dct.items()<= base_dct.items()
>
> In Python 2:
>
> >>> test_dct = {"foo": 0, "bar": 1}
> >>> base_dct = {"foo": 0, "bar": 1, "baz": 2}
> >>>
> >>> test_dct.items() <= base_dct.items()
> False
>
> In Python 3:
>
> >>> test_dct = {"foo": 0, "bar": 1}
> >>> base_dct = {"foo": 0, "bar": 1, "baz": 2}
> >>> test_dct.items() <= base_dct.items()
> True
>
> YMMV
That is because it is spelled differently in Python 2.7:
>>> test_dct = {"foo": 0, "bar": 1}
>>> base_dct = {"foo": 0, "bar": 1, "baz": 2}
>>> test_dct.viewitems() <= base_dct.viewitems()
True
Raymond
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
suggestions, comments on an "is_subdict" test Vlastimil Brom <vlastimil.brom@gmail.com> - 2011-04-22 15:55 +0200
Re: suggestions, comments on an "is_subdict" test Irmen de Jong <irmen.NOSPAM@xs4all.nl> - 2011-04-22 16:57 +0200
Re: suggestions, comments on an "is_subdict" test MRAB <python@mrabarnett.plus.com> - 2011-04-22 16:18 +0100
Re: suggestions, comments on an "is_subdict" test Raymond Hettinger <python@rcn.com> - 2011-04-23 00:23 -0700
Re: suggestions, comments on an "is_subdict" test Paul Rubin <no.email@nospam.invalid> - 2011-04-23 00:26 -0700
csiph-web