擅长:python、mysql、java
<p>对于第一个,这很简单:</p>
<pre><code>>>> lst = ['list4','this1','my3','is2']
>>> lst = sorted(lst, key=lambda x:int(x[-1]))
>>> lst
['this1', 'is2', 'my3', 'list4']
</code></pre>
<p>但这假定每个项都是字符串,并且每个项的最后一个字符都是数字。只要每个项目中的数字部分是个位数,它也可以工作。否则它就坏了。对于第二个问题,您需要定义“您如何看待它”,以便按照逻辑对其进行排序</p>
<p>如果有多个数字字符:</p>
<pre><code>>>> import re
>>> lst = ['lis22t4','th2is21','my3','is2']
>>> sorted(lst, key=lambda x:int(re.search(r'\d+$', x).group(0)))
['is2', 'my3', 'list4', 'this21']
# or,
>>> ['is2', 'my3', 'lis22t4', 'th2is21']
</code></pre>
<p>但你总是可以做到:</p>
<pre><code>>>> lst = [1,6,'one','six']
>>> lst = [lst[2], lst[0], lst[3], lst[1]]
>>> lst
['one', 1, 'six', 6]
</code></pre>
<p>另外,不要使用python内置函数作为变量名<code>list</code>是一个错误的变量名</p>