Python 自动递增字典中的相同值

Python 自动递增字典中的相同值,python,dictionary,Python,Dictionary,我有一本字典: {'someKey1': 1, 'someKey2': 1, 'someKey3': 1, 'someKey4': 3, 'someKey5': 4, 'someKey6': 4, 'someKey7': 2} 我试图获取的输出是一个具有自动递增值的字典,如下所示: {'someKey1': 1, 'someKey2': 2, 'someKey3': 3, 'someKey4': 5, 'someKey5': 7, 'someKey6': 6, 'someKey7': 4}

我有一本字典:

{'someKey1': 1, 'someKey2': 1, 'someKey3': 1, 'someKey4': 3, 'someKey5': 4, 'someKey6': 4, 'someKey7': 2}
我试图获取的输出是一个具有自动递增值的字典,如下所示:

{'someKey1': 1, 'someKey2': 2, 'someKey3': 3, 'someKey4': 5, 'someKey5': 7, 'someKey6': 6, 'someKey7': 4}
someKey1-someKey3中的值只要在1-3中就不重要,这意味着someKey1值可以是3,但3不能在dict中重复作为值

基本上第一个dict是的,它必须是一个dict包含键的顺序,但顺序可以重复,所以我想顺序是自动递增的

进一步解释: 我在前端有一个js对象,它包含表中的列名作为键,在前端,用户可以选择哪个列应该按什么顺序排列。因此,somekey实际上是列名,number是所述列应该放置的位置。
对于多个键使用相同的数字,用户可以将一列拆分为多列。因此,只要它们在同一个括号内,我就不关心顺序。例如,someKey1-3必须位于位置1-3,因为它们的值为1。

您的结果表明原始值用作新序列的赋值顺序。然而,对于具有相同初始值的键的分配,有一个随机因素,我无法从您的解释中理解。i、 e.为什么someKey1和someKey2接收1和2,而someKey5和someKey6按降序获取其新值7和6

所以我能得出的最接近这个结果是:

dict1 = {'someKey1': 1, 'someKey2': 1, 'someKey3': 1, 'someKey4': 3, 'someKey5': 4, 'someKey6': 4, 'someKey7': 2}


dict2 = { k:v for v,(k,_) in enumerate(sorted(dict1.items(),key=lambda kv:kv[1]),1) }
            

print(dict(sorted(dict2.items()))) # printed in key order to facilitate comparison

{'someKey1': 1, 'someKey2': 2, 'someKey3': 3, 'someKey4': 5, 'someKey5': 6, 'someKey6': 7, 'someKey7': 4}

如果您真的不关心最初具有相同值的键的值,则应该可以。

到目前为止您尝试了什么?您可以使用.items方法迭代字典,这可能会对您有所帮助!对于键,mydict.items中的值:…包含键的顺序:dict没有顺序。这些键只是示例,还是确实有以数字结尾的键?@fuenfundachtzig字典保证从Python 3.7+按插入顺序排列@ti7这是我一直坚持的步骤,之前有很多代码,插入顺序没有,因为最初的dict顺序是在react前端生成的,而不是在那里排序。我添加了更多的解释,希望现在更清楚。