mirror of https://github.com/python/cpython.git
set items in dict displays from left to right (closes #24569)
This commit is contained in:
parent
1554b17856
commit
d5d77aac60
|
@ -128,6 +128,9 @@
|
||||||
... for i in range(1000)) + "}"))
|
... for i in range(1000)) + "}"))
|
||||||
1000
|
1000
|
||||||
|
|
||||||
|
>>> {0:1, **{0:2}, 0:3, 0:4}
|
||||||
|
{0: 4}
|
||||||
|
|
||||||
List comprehension element unpacking
|
List comprehension element unpacking
|
||||||
|
|
||||||
>>> a, b, c = [0, 1, 2], 3, 4
|
>>> a, b, c = [0, 1, 2], 3, 4
|
||||||
|
|
|
@ -10,6 +10,8 @@ What's New in Python 3.5.0 beta 4?
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #24569: Make PEP 448 dictionary evaluation more consistent.
|
||||||
|
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
|
|
@ -2561,22 +2561,25 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
|
||||||
}
|
}
|
||||||
|
|
||||||
TARGET(BUILD_MAP) {
|
TARGET(BUILD_MAP) {
|
||||||
|
int i;
|
||||||
PyObject *map = _PyDict_NewPresized((Py_ssize_t)oparg);
|
PyObject *map = _PyDict_NewPresized((Py_ssize_t)oparg);
|
||||||
if (map == NULL)
|
if (map == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
while (--oparg >= 0) {
|
for (i = oparg; i > 0; i--) {
|
||||||
int err;
|
int err;
|
||||||
PyObject *value = TOP();
|
PyObject *key = PEEK(2*i);
|
||||||
PyObject *key = SECOND();
|
PyObject *value = PEEK(2*i - 1);
|
||||||
STACKADJ(-2);
|
|
||||||
err = PyDict_SetItem(map, key, value);
|
err = PyDict_SetItem(map, key, value);
|
||||||
Py_DECREF(value);
|
|
||||||
Py_DECREF(key);
|
|
||||||
if (err != 0) {
|
if (err != 0) {
|
||||||
Py_DECREF(map);
|
Py_DECREF(map);
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while (oparg--) {
|
||||||
|
Py_DECREF(POP());
|
||||||
|
Py_DECREF(POP());
|
||||||
|
}
|
||||||
PUSH(map);
|
PUSH(map);
|
||||||
DISPATCH();
|
DISPATCH();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue