Lawrence D’Oliveiro writes: > On Tuesday, September 27, 2016 at 8:08:46 PM UTC+13, Nagy László Zsolt wrote: >> d1 = {'a':1, 'b':2} >> d2 = {'c':3, 'd':4} >> d3 = {'e':5, 'f':6} >> >> Is there a version that is as effective as #3, but as clean and nice as #4? > > dict(dict(d1, **d2), **d3)
Nice expression. But that's not available if the keys are not strings: dict({}, **{ 1:3 }) ==> Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: keyword arguments must be strings On the other hand, '1' seemed to work (in Python 3.4.3) as key, though 1 cannot possibly be a keyword parameter in a function definition :) Also related to the use of **, are there any practical limitations to how many parameters a Python function may have? Or is it guaranteed safe to spread, say, hundreds of thousands of dictionary keys this way? Just wondering. -- https://mail.python.org/mailman/listinfo/python-list