python中计算权重

背景
题目来自codewars

我的朋友约翰和我是“Fat to Fit Club (FFC)”的成员。John 很担心,因为每个月都会发布一个包含成员权重的列表,并且每个月他都是列表中的最后一个,这意味着他是最重的。
我是建立名单的人,所以我告诉他:“别担心,我会修改名单的顺序”。决定将“权重”归因于数字。从现在开始,一个数字的权重将是其数字的总和。
例如99会有 "weight" 18,100会有 "weight"1所以在列表中100会出现在前面99。
给定一个 FFC 成员权重按正常顺序排列的字符串,你能给出这个按这些数字的“权重”排序的字符串吗?

例子:
"56 65 74 100 99 68 86 180 90" ordered by numbers weights becomes:
"100 180 90 56 65 74 68 86 99"

当两个数字具有相同的“权重”时,让我们将它们分类为字符串(按字母顺序)而不是数字:
180之前,90因为具有相同的“权重”(9),它作为字符串出现在之前。
列表中的所有数字都是正数,列表可以为空。
输入字符串可能有前导、尾随空格以及两个连续数字之间的唯一空格

def order_weight(strng):
    # your code

不知道怎么算权重,请解释一下权重的意思和大致如何计算,谢谢!