您可以使用进行以下 *** 作
itertools.chain:
>>> from itertools import chain# timeit: ~3.40>>> [dict(chain(*map(dict.items, d.values()))) for d in data][{'l': 'Apple', 'b': 'Milk', 'd': 'Meatball', 'favourite': 'coke', 'dislike': 'juice'}, {'l': 'Apple1', 'b': 'Milk1', 'dislike': 'juice3', 'favourite': 'coke2', 'd': 'Meatball2'}]
的使用
chain,
map,
*使这个表达式如下双重嵌套理解它实际上执行好我的系统(Python的3.5.2)上,并不算多长的缩写:
注意:# timeit: ~2.04[{k: v for x in d.values() for k, v in x.items()} for d in data]# Or, not using items, but lookup by key# timeit: ~1.67[{k: x[k] for x in d.values() for k in x} for d in data]
RoadRunner的循环和更新方法在以下方面均胜过这两种单行代码
timeit:~1.37
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)