擅长:python、mysql、java
<p>要以对人类有意义的方式对数字进行排序,必须确保它们以数字而不是文本的形式呈现:</p>
<ul>
<li>e、 例如,“5”是一个表示数字的字符串,而不是一个数字
<code>example_list = ['5', '10']</code>如果排序将产生`['10','5']
因为比较的是5和1;一次一个字符</李>
</ul>
<p>要获得您可能想要的结果,您必须执行以下操作:</p>
<pre><code>data = [('18.3G', 'pgaur'), ('29.6G', 'adsoni'), ('5.51G', 'keyur'), ('10.8G', 'adityac')]
sorted_list = sorted(data, key=lambda x: float(x[0][:-1]))
print(sorted_list)
# prints [('5.51G', 'keyur'), ('10.8G', 'adityac'), ('18.3G', 'pgaur'), ('29.6G', 'adsoni')]
</code></pre>
<p>注意<code>x[0]</code>上的切片。它接受<code>x[0]</code>中除最后一个(<code>'G'</code>)之外的所有字符,因为这会扰乱数字的排序。然后,切片的<code>x[0]</code>被转换成带有<code>float()</code>的float并用于排序。最后,结果保存在一个新列表中</p>