this post was submitted on 25 Sep 2026
58 points (91.4% liked)

Python

8062 readers
1 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

๐Ÿ“… Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

๐Ÿ Python project:
๐Ÿ’“ Python Community:
โœจ Python Ecosystem:
๐ŸŒŒ Fediverse
Communities
Projects
Feeds

founded 3 years ago
MODERATORS
 

A hard exercise to help build the right mental model for Python data.

The โ€œSolutionโ€ link visualizes execution and reveals whatโ€™s actually happening using ๐—บ๐—ฒ๐—บ๐—ผ๐—ฟ๐˜†_๐—ด๐—ฟ๐—ฎ๐—ฝ๐—ต: https://github.com/bterwijn/memory_graph

you are viewing a single comment's thread
view the rest of the comments
[โ€“] syklemil@discuss.tchncs.de 5 points 1 week ago (1 children)

I didn't have previous exposure to that exact syntax either, but:

  • Python and plenty other languages have assignment variations with an operator like +
  • | in plenty of languages means logical OR
    • possibly bitwise, but that seems unlikely in Python
  • Dicts are sorta complex siblings of sets
  • In terms of sets, OR is equivalent to a union

Hence, a |=b should have the same meaning as a = a | b or a = a.union(b)

and then the quiz is about basically implementation details and what the actual semantics winds up being in a language like python, where stuff is mutable by default and references are implicit (even though the zen of python states a preference for being explicit)

[โ€“] bterwijn@programming.dev 3 points 1 week ago* (last edited 1 week ago) (1 children)

There is one important difference between a |= b and a = a | b, that is one part that makes this exercise difficult. See the dictionary docs (https://docs.python.org/3/builtins/stdtypes.html#dict):

d |= other Update the dictionary d with keys and values from other, which may be either a mapping or an iterable of key/value pairs. The values of other take priority when d and other share keys. Added in version 3.9.

Pick your answer and check the Solution link.

The zen of Python lies unless you're Dutch. I'm Dutch and when I look out of my office I see the CWI where Guido wrote the original Python versions back in the day, see "Python the documentory" on YouTube.

[โ€“] syklemil@discuss.tchncs.de 2 points 1 week ago (1 children)

I was trying not to spoil that a |= b and a = a | b have different semantics though, as that pretty much winds up giving away the answer IMO

[โ€“] bterwijn@programming.dev 1 points 1 week ago

Thanks, but I also give a solution link, so people can already cheat if they really want too.