Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #67054 > unrolled thread
| Started by | mauro <mauro@gmail.com> |
|---|---|
| First post | 2014-02-25 20:32 +0000 |
| Last post | 2014-03-02 09:29 +1100 |
| Articles | 7 on this page of 27 — 16 participants |
Back to article view | Back to comp.lang.python
intersection, union, difference, symmetric difference for dictionaries mauro <mauro@gmail.com> - 2014-02-25 20:32 +0000
Re: intersection, union, difference, symmetric difference for dictionaries Nick Timkovich <prometheus235@gmail.com> - 2014-02-25 14:37 -0600
Re: intersection, union, difference, symmetric difference for dictionaries Skip Montanaro <skip@pobox.com> - 2014-02-25 14:40 -0600
Re: intersection, union, difference, symmetric difference for dictionaries Peter Otten <__peter__@web.de> - 2014-02-25 21:53 +0100
Re: intersection, union, difference, symmetric difference for dictionaries Peter Otten <__peter__@web.de> - 2014-02-25 21:58 +0100
Re: intersection, union, difference, symmetric difference for dictionaries Tim Chase <python.list@tim.thechases.com> - 2014-02-25 15:03 -0600
Re: intersection, union, difference, symmetric difference for dictionaries Duncan Booth <duncan.booth@invalid.invalid> - 2014-02-25 22:21 +0000
Re: intersection, union, difference, symmetric difference for dictionaries Tim Chase <tim@thechases.com> - 2014-02-25 16:35 -0600
Re: intersection, union, difference, symmetric difference for dictionaries Tim Chase <python.list@tim.thechases.com> - 2014-02-25 16:36 -0600
Re: intersection, union, difference, symmetric difference for dictionaries Oscar Benjamin <oscar.j.benjamin@gmail.com> - 2014-02-25 22:58 +0000
Re: intersection, union, difference, symmetric difference for dictionaries Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-02-25 23:10 +0000
Re: intersection, union, difference, symmetric difference for dictionaries Tim Chase <python.list@tim.thechases.com> - 2014-02-25 20:21 -0600
Re: intersection, union, difference, symmetric difference for dictionaries Ben Finney <ben+python@benfinney.id.au> - 2014-02-26 08:27 +1100
Re:intersection, union, difference, symmetric difference for dictionaries Dave Angel <davea@davea.name> - 2014-02-25 16:35 -0500
Re: intersection, union, difference, symmetric difference for dictionaries Peter Otten <__peter__@web.de> - 2014-02-25 22:54 +0100
Re: intersection, union, difference, symmetric difference for dictionaries mauro <mauro@gmail.com> - 2014-02-25 22:02 +0000
Re: intersection, union, difference, symmetric difference for dictionaries mauro <mauro@gmail.com> - 2014-02-25 22:03 +0000
Re: intersection, union, difference, symmetric difference for dictionaries Tim Chase <python.list@tim.thechases.com> - 2014-02-25 16:10 -0600
Re: intersection, union, difference, symmetric difference for dictionaries mauro <mauro@gmail.com> - 2014-02-25 22:11 +0000
Re: intersection, union, difference, symmetric difference for dictionaries Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-02-25 22:35 +0000
Re: intersection, union, difference, symmetric difference for dictionaries MRAB <python@mrabarnett.plus.com> - 2014-02-25 23:07 +0000
Re: intersection, union, difference, symmetric difference for dictionaries Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2014-02-26 00:37 +0000
Re: intersection, union, difference, symmetric difference for dictionaries Ben Finney <ben+python@benfinney.id.au> - 2014-02-26 10:14 +1100
Re: intersection, union, difference, symmetric difference for dictionaries MRAB <python@mrabarnett.plus.com> - 2014-02-25 23:25 +0000
Re: intersection, union, difference, symmetric difference for dictionaries Grant Edwards <invalid@invalid.invalid> - 2014-02-25 20:44 +0000
Re: intersection, union, difference, symmetric difference for dictionaries John Gordon <gordon@panix.com> - 2014-02-25 20:44 +0000
Re: intersection, union, difference, symmetric difference for dictionaries Chris Angelico <rosuav@gmail.com> - 2014-03-02 09:29 +1100
Page 2 of 2 — ← Prev page 1 [2]
| From | MRAB <python@mrabarnett.plus.com> |
|---|---|
| Date | 2014-02-25 23:07 +0000 |
| Message-ID | <mailman.7377.1393369652.18130.python-list@python.org> |
| In reply to | #67054 |
On 2014-02-25 21:27, Ben Finney wrote: > Peter Otten <__peter__@web.de> writes: > >> mauro wrote: >> >> > - Dictionaries and sets are both accessed by key >> >> but sets have no values > > Or rather, sets *only* have values. Dictionaries have keys, sets do not > have keys. > But a dictionary can have duplicate values, a set cannot.
[toc] | [prev] | [next] | [standalone]
| From | Steven D'Aprano <steve+comp.lang.python@pearwood.info> |
|---|---|
| Date | 2014-02-26 00:37 +0000 |
| Message-ID | <530d3758$0$29985$c3e8da3$5496439d@news.astraweb.com> |
| In reply to | #67074 |
On Tue, 25 Feb 2014 23:07:28 +0000, MRAB wrote: > On 2014-02-25 21:27, Ben Finney wrote: >> Or rather, sets *only* have values. Dictionaries have keys, sets do not >> have keys. >> > But a dictionary can have duplicate values, a set cannot. It is usual to talk about the things stored in dicts and sets using slightly different terminology: - mappings such as dicts have *key/value pairs* - sets have *elements* The elements of a set are most closely related to the keys of a mapping, not the values. Set elements are unique, just like mapping keys. Specifically, the keys in a mapping make up a set; the values in a mapping do not. When talking specifically about Python dicts and sets, there is an additional restriction: both set elements and dict keys have to be hashable. English being a little sloppy at times, sometimes we also talk about the *values of a set*, but here "value" is being used as a synonym for "element" and not as a technical term for the thing which mappings associate with a key. -- Steven
[toc] | [prev] | [next] | [standalone]
| From | Ben Finney <ben+python@benfinney.id.au> |
|---|---|
| Date | 2014-02-26 10:14 +1100 |
| Message-ID | <mailman.7378.1393370084.18130.python-list@python.org> |
| In reply to | #67054 |
MRAB <python@mrabarnett.plus.com> writes: > On 2014-02-25 21:27, Ben Finney wrote: > > Peter Otten <__peter__@web.de> writes: > > > >> mauro wrote: > >> > >> > - Dictionaries and sets are both accessed by key > >> > >> but sets have no values > > > > Or rather, sets *only* have values. Dictionaries have keys, sets do > > not have keys. > > > But a dictionary can have duplicate values, a set cannot. Yes. Your “but” implies you think that contradicts my statement; it doesn't. So I'm not sure what point you're making. -- \ “Alternative explanations are always welcome in science, if | `\ they are better and explain more. Alternative explanations that | _o__) explain nothing are not welcome.” —Victor J. Stenger, 2001-11-05 | Ben Finney
[toc] | [prev] | [next] | [standalone]
| From | MRAB <python@mrabarnett.plus.com> |
|---|---|
| Date | 2014-02-25 23:25 +0000 |
| Message-ID | <mailman.7379.1393370709.18130.python-list@python.org> |
| In reply to | #67054 |
On 2014-02-25 23:14, Ben Finney wrote: > MRAB <python@mrabarnett.plus.com> writes: > >> On 2014-02-25 21:27, Ben Finney wrote: >> > Peter Otten <__peter__@web.de> writes: >> > >> >> mauro wrote: >> >> >> >> > - Dictionaries and sets are both accessed by key >> >> >> >> but sets have no values >> > >> > Or rather, sets *only* have values. Dictionaries have keys, sets do >> > not have keys. >> > >> But a dictionary can have duplicate values, a set cannot. > > Yes. Your “but” implies you think that contradicts my statement; it > doesn't. So I'm not sure what point you're making. > The keys of a dictionary must be unique, like a set. The values of a dictionary don't have to be unique, unlike a set.
[toc] | [prev] | [next] | [standalone]
| From | Grant Edwards <invalid@invalid.invalid> |
|---|---|
| Date | 2014-02-25 20:44 +0000 |
| Message-ID | <leivb2$53$1@reader1.panix.com> |
| In reply to | #67054 |
On 2014-02-25, mauro <mauro@gmail.com> wrote:
> Dictionaries and sets share a few properties:
> - Dictionaries keys are unique as well as sets items
> - Dictionaries and sets are both unordered
> - Dictionaries and sets are both accessed by key
> - Dictionaries and sets are both mutables
>
> So I wonder why operations such us intersection, union, difference,
> symmetric difference that are available for sets and are not available
> for dictionaries without going via key dictviews.
What would be the definition of the union, intersection, and
difference of these two dicts?
{1:'blue', 2:'red'}
{1:'green', 3:'yellow'}
--
Grant Edwards grant.b.edwards Yow! I smell like a wet
at reducing clinic on Columbus
gmail.com Day!
[toc] | [prev] | [next] | [standalone]
| From | John Gordon <gordon@panix.com> |
|---|---|
| Date | 2014-02-25 20:44 +0000 |
| Message-ID | <leivbq$hs0$1@reader1.panix.com> |
| In reply to | #67054 |
In <G57Pu.24239$Th2.4990@tornado.fastwebnet.it> mauro <mauro@gmail.com> writes: > - Dictionaries and sets are both accessed by key As far as I have used sets, they are not accessed by key. >>> x = set([1, 2, 'buckle my shoe']) >>> x set([1, 2, 'buckle my shoe']) >>> 1 in x True >>> 5 in x False -- John Gordon Imagine what it must be like for a real medical doctor to gordon@panix.com watch 'House', or a real serial killer to watch 'Dexter'.
[toc] | [prev] | [next] | [standalone]
| From | Chris Angelico <rosuav@gmail.com> |
|---|---|
| Date | 2014-03-02 09:29 +1100 |
| Message-ID | <mailman.7543.1393712974.18130.python-list@python.org> |
| In reply to | #67360 |
On Wed, Feb 26, 2014 at 7:44 AM, John Gordon <gordon@panix.com> wrote:
> In <G57Pu.24239$Th2.4990@tornado.fastwebnet.it> mauro <mauro@gmail.com> writes:
>
>> - Dictionaries and sets are both accessed by key
>
> As far as I have used sets, they are not accessed by key.
>
>>>> x = set([1, 2, 'buckle my shoe'])
>>>> x
> set([1, 2, 'buckle my shoe'])
>>>> 1 in x
> True
>>>> 5 in x
> False
>>> x = {1:3, 2:4, 'buckle my shoe':'spamming the door'}
>>> x
{1: 3, 2: 4, 'buckle my shoe': 'spamming the door'}
>>> 1 in x
True
>>> 5 in x
False
A dict does the exact same thing with its keys as a set does with its
elements. Actually, one of the things that periodically trips me up
when I switch from Pike to Python is that a Python set can't be used
like this:
>>> x = set()
>>> x["test"] = 1
>>> x["foo"] = 1
>>> assert x == {"test","foo"}
Instead, I have to use x.add("test"). In Pike, I can treat a set as if
it were a mapping where every value is simply the integer 1 (Python
could use True instead). Setting it to any truthy value would add it,
setting to any falsy value would remove it. This wouldn't be a huge
change; it certainly wouldn't fundamentally change the set type -
because it *is* working with keys.
Hmm. Actually, it shouldn't be too hard to subclass and add that. Lessee.
class set(set):
def __setitem__(self, key, state):
if state: self.add(key)
else: self.remove(key)
def __getitem__(self, key):
return key in self
I might need to toss that into site.py or something. It'd work as long
as I don't use set literal notation anywhere.
ChrisA
[toc] | [prev] | [standalone]
Page 2 of 2 — ← Prev page 1 [2]
Back to top | Article view | comp.lang.python
csiph-web