Also, if one have in mind that dict addition with the `+` operator had been
recelently approved, as of Python 3.9 it will be ok to write:
```
return ({
'user_id': user_id,} +
({'max_results': max_results} if max_results else {}) +
({'active': active} if active is not None else {}) +
({'deleted': deleted} if deleted is not None else {})
)
And actually, on a second though, this is already valid as of current
Python - and is potentially more
readable than a magic "dict.skip" singleton.
```
return {
'user_id': user_id,
**({'max_results': max_results} if max_results else {}),
**({'active': active} if active is not None else {}),
**({'deleted': deleted} if deleted is not None else {})
}
```
On Thu, 5 Sep 2019 at 10:22,
I thought of something similar, but where the dict-literal construction is desired:
foo = True bar = False baz = False d = { ... 'foo' if foo else None: 1, ... 'bar' if bar else None: 2, ... 'baz' if baz else None: 3, ... } d {'foo': 1, None: 3} d.pop(None) 3 d {'foo': 1}
The natural helper function for the "'foo' if foo else None" snip would then be something like:
def key_flag(key, flag, default=None): ... return key if flag else default ... dd = { ... key_flag('foo', foo): 1, ... key_flag('bar', bar): 2, ... key_flag('baz', baz): 3, ... } dd {'foo': 1, None: 3} dd.pop(None) 3 dd {'foo': 1}
-Brian _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-leave@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/SZZVOF... Code of Conduct: http://python.org/psf/codeofconduct/