<p>最好的方法是为<code>sorted</code>函数使用<code>key</code>参数</p>
<p>从<a href="https://docs.python.org/3/howto/sorting.html" rel="nofollow noreferrer">docs</a>:</p>
<blockquote>
<p>The value of the key parameter should be a function that takes a
single argument and returns a key to use for sorting purposes. This
technique is fast because the key function is called exactly once for
each input record.</p>
</blockquote>
<p>要对代码列表进行排序,我将执行以下操作:</p>
<pre><code>your_list = [('site-nfv01-swsto01',), ('site-nfv01-swsto01V',),('site-nfv01-swsto02',),('site-nfv02-swsto02',), ('site-nfv02-swsto01',) , ('site-nfv02-swsto01V',)]
#sort using key parameter
#key must be a function that returns a new value to be sorted
#this particular key function checks if 'V' is at the last position,
#leaves the code unchanged if true,
#else adds arbitrary string at the end of the code that will cause the code to be sorted after codes with the same content at the beginning but lacking the 'V'
#in this case I chose 'z' which comes after 'v' in the alphabet
sorted_list = sorted(your_list, key=lambda code: code[0] if code[0][-1] == 'V' else code[0]+'z')
</code></pre>
<p>如果您不知道lambda表达式是如何工作的,请查看<a href="https://docs.python.org/3/tutorial/controlflow.html" rel="nofollow noreferrer">docs</a></p>