<p>您可以使用多个条件进行排序(<code>map(int,e[0].split('.'))</code>作为条件1,<code>int(e[1].lstrip('(').split('/')[0])</code>作为条件2),如下所示</p>
<pre><code>>>> a
['192.168.0.3 (443/tcp)|',
'192.168.0.176 (443/tcp)|',
'192.168.0.40 (443/tcp)|',
'192.168.0.15 (8443/tcp)|',
'192.168.0.16 (8443/tcp)|',
'192.168.0.12 (443/tcp)|',
'192.168.0.9 (3389/tcp)|',
'192.168.0.15 (443/tcp)|',
'192.168.0.16 (443/tcp)|',
'192.168.0.3 (3389/tcp)|',
'192.168.0.14 (443/tcp)|']
>>> [i.split() for i in a]
[['192.168.0.3', '(443/tcp)|'],
['192.168.0.176', '(443/tcp)|'],
['192.168.0.40', '(443/tcp)|'],
['192.168.0.15', '(8443/tcp)|'],
['192.168.0.16', '(8443/tcp)|'],
['192.168.0.12', '(443/tcp)|'],
['192.168.0.9', '(3389/tcp)|'],
['192.168.0.15', '(443/tcp)|'],
['192.168.0.16', '(443/tcp)|'],
['192.168.0.3', '(3389/tcp)|'],
['192.168.0.14', '(443/tcp)|']]
>>> sorted([i.split() for i in a],key=lambda e: (map(int,e[0].split('.')),int(e[1].strip('(').split('/')[0])))
[['192.168.0.3', '(443/tcp)|'],
['192.168.0.3', '(3389/tcp)|'],
['192.168.0.9', '(3389/tcp)|'],
['192.168.0.12', '(443/tcp)|'],
['192.168.0.14', '(443/tcp)|'],
['192.168.0.15', '(443/tcp)|'],
['192.168.0.15', '(8443/tcp)|'],
['192.168.0.16', '(443/tcp)|'],
['192.168.0.16', '(8443/tcp)|'],
['192.168.0.40', '(443/tcp)|'],
['192.168.0.176', '(443/tcp)|']]
</code></pre>