首页 > 解决方案 > SyntaxError:只能使用星号表达式作为赋值目标

问题描述

此处的原始问题 此代码适用于 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())
=======================================

标签: pythonpython-3.x

解决方案


推荐阅读