擅长:python、mysql、java
<p>您需要的排序需要数字而不是字符串。将数字作为字符串排序时,将返回不同的结果。你知道吗</p>
<pre><code>res = list(zip(user_list, map(int, num_list))) # [('oshamir', 400), ('oshamir', 700), ('oshamir', 600), ('ctmuser', 300), ('ctmuser', 500), ('root', 1000), ('root', 400), ('root', 2000)]
res.sort(key=lambda x: (x[0], x[1])) # [('ctmuser', 300), ('ctmuser', 500), ('oshamir', 400), ('oshamir', 600), ('oshamir', 700), ('root', 400), ('root', 1000), ('root', 2000)]
final = {k:str(v) for k,v in res} # {'ctmuser': '500', 'root': '2000', 'oshamir': '700'}
</code></pre>
<p>所以我会转换成数字,排序,得到最大值,最后切换回字符串。你知道吗</p>
<p>如果明确要求列表列表作为输出,则可以在顶部添加列表,如下所示:</p>
<pre><code>final = [[a, b] for a, b in final.items()] # [['ctmuser', '500'], ['root', '2000'], ['oshamir', '700']]
</code></pre>