def dict_invert(d):
'''
d: dict
Returns an inverted dictionary according to the instructions above
'''
result = {}
for k, v in d.iteritems():
result.setdefault(v, []).append(k)
return result
在上述程序中,所有输出都是正确的
^{pr2}$
但根据我的赋值,我需要{6: [2, 4, 6, 8]}
作为输出。
我该怎么办?在
Tags:
这同样适用于
iteritems
Source
请尝试在附加后对其进行排序,如下所示:
更新:
由于python的算法Timsort适合对已经排序的数据进行排序,因此效率会很高。 如果您希望获得更高的效率,您可以使用^{} :
^{pr2}$由于数据不是很大,而且没有任何复杂的自定义相等运算符(这是一个int比较),我相信您几乎看不到任何区别。在
不过,将dict重新创建为已排序的dict将浪费空间和CPU时间,因此不建议这样做。在
更新2:
带基准的代码:
python 2的输出:
python3的输出(将
iteritems()
更改为items()
):相关问题 更多 >
编程相关推荐