Python-用尽可能低的值重新分配优先级列表



优先级范围可以从1到99。

尝试以下操作:

def reassignedPriorities(priorities):
ordered_raw_priorities = sorted(set(priorities))
priority_dict = {ordered_raw_priorities[i]: i + 1 for i in range(len(ordered_raw_priorities))}

return [priority_dict[e] for e in priorities]

使用enumerate,代码甚至可以简化:

def reassignedPriorities(priorities):
ordered_raw_priorities = sorted(set(priorities))
priority_dict = {
e: i for i, e in enumerate(ordered_raw_priorities, start=1)
}

return [priority_dict[e] for e in priorities]

如果你打电话给

reassignedPriorities([1,3,7,3])

输出将是

[1, 2, 3, 2]

最新更新