您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中执行列表/字典理解时可以访问当前对象吗?

在Python中执行列表/字典理解时可以访问当前对象吗?

不,那里没有。dict理解会为每次迭代生成一个 项目,并且您的代码需要生成 更少的 项目(合并值)。

没有不使用(难看的,非pythonic的)副作用技巧,就无法访??问早期迭代中生成的密钥。dict理解所要产生的对象尚不存在,因此也无法产生自引用。

只需坚持自己的for循环,它就会更具可读性。

另一种选择是使用排序和分组,O(NlogN)算法与直接循环的简单O(N):

from itertools import groupby
from operator import itemgetter

res = {key: sum(t[1] for t in group) 
       for key, group in groupby(sorted(data, key=itemgetter(0)), key=itemgetter(0))}
python 2022/1/1 18:38:36 有252人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶