Original Question here 此代码适用于v3.6.4但是当我迁移到v3.4时,我收到一条错误消息:你会如何重写它?
for d in [*x, *y]:
^
SyntaxError: can use starred expression only as assignment target
=======================================
from operator import itemgetter
from collections import defaultdict
x = [ {'pid':111, 'sid':6, 'eid':123, 'x_qty':30},
{'pid':222, 'sid':56, 'eid':6212, 'x_qty':2} ]
y = [ {'pid':111, 'sid':6, 'eid':123, 'y_qty':123},
{'pid':333, 'sid':56, 'eid':6212, 'y_qty':112} ]
data = defaultdict(dict)
f = itemgetter('pid', 'sid', 'eid')
for d in [*x, *y]:
data[f(d)].update(d)
result = list(data.values())
=======================================