a = [6, 8, 1, 0, 5, 0]
sorted_positions = {x: i for i, x in enumerate(sorted(a))}
# {0: 1, 1: 2, 5: 3, 6: 4, 8: 5}
indices = [sorted_positions[x] for x in a]
# [4, 5, 2, 1, 3, 1]
zeroes = a.count(0)
# 2
answer = [
0 if x == 0
else i - zeroes + 1
for i, x in zip(indices, a)
]
# [3, 4, 1, 0, 2, 0]
Термины для поиска, если вы не распознаете синтаксис: понимание списка, понимание слова и троичный оператор Python.
Для случая a=[3,3,1,1,2,2]
это дает [6, 6, 2, 2, 4, 4]
.