this post was submitted on 29 Apr 2024
34 points (100.0% liked)
Python
6375 readers
5 users here now
Welcome to the Python community on the programming.dev Lemmy instance!
๐ Events
Past
November 2023
- PyCon Ireland 2023, 11-12th
- PyData Tel Aviv 2023 14th
October 2023
- PyConES Canarias 2023, 6-8th
- DjangoCon US 2023, 16-20th (!django ๐ฌ)
July 2023
- PyDelhi Meetup, 2nd
- PyCon Israel, 4-5th
- DFW Pythoneers, 6th
- Django Girls Abraka, 6-7th
- SciPy 2023 10-16th, Austin
- IndyPy, 11th
- Leipzig Python User Group, 11th
- Austin Python, 12th
- EuroPython 2023, 17-23rd
- Austin Python: Evening of Coding, 18th
- PyHEP.dev 2023 - "Python in HEP" Developer's Workshop, 25th
August 2023
- PyLadies Dublin, 15th
- EuroSciPy 2023, 14-18th
September 2023
- PyData Amsterdam, 14-16th
- PyCon UK, 22nd - 25th
๐ Python project:
- Python
- Documentation
- News & Blog
- Python Planet blog aggregator
๐ Python Community:
- #python IRC for general questions
- #python-dev IRC for CPython developers
- PySlackers Slack channel
- Python Discord server
- Python Weekly newsletters
- Mailing lists
- Forum
โจ Python Ecosystem:
๐ Fediverse
Communities
- #python on Mastodon
- c/django on programming.dev
- c/pythorhead on lemmy.dbzer0.com
Projects
- Pythรถrhead: a Python library for interacting with Lemmy
- Plemmy: a Python package for accessing the Lemmy API
- pylemmy pylemmy enables simple access to Lemmy's API with Python
- mastodon.py, a Python wrapper for the Mastodon API
Feeds
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
No, that's not what it's for. It lets you define a temporary local variable within an expression. This is useful in situations where you might want to use the same value more than once within the expression. In a regular function, you would just define a variable first and then use it as many times as you want. But until the walrus operator came along, you couldn't define a variable within a lambda expression.
Ok, I'm trying to think of a simple example. Let's say you had a database that maps student IDs to records contain their names. To keep things simple, I'll just make it plain old
dict
. And then you have alist
of student IDs. You want to sort these IDs using the student names in the form "last, first" as the key. So you could go:The problem here is that
student_ids
doesn't contain the student names. You need use the ID to look up the record that contains those. So let's say the first IDi
is1261456
. That would mean:evaluates to:
Then we are effectively going:
which should give us:
Without the
:=
you would either have to perform 2student_recs[i]
look-ups to get each name which would be wasteful or replace the lambda with a regular function where you can writerec = student_recs[i]
on its own line and then use it.Am I making any sense?
Actually, now that I think of it, there's no reason you need to join the 2 names into a single
str
. You could just leave it as atuple
of last, first and Python will know what to do in comparing them.So the lambda would be returning
('Potter', 'Harry')
rather than'Potter, Harry'
. But whatever. The:=
part is still the same.