擅长:python、mysql、java
<p>假设您的<code>addr_list</code>列表如下(您在问题中没有指定):</p>
<pre><code>addr_list = [
'10.11.12.13',
'1.2.3.4',
'127.0.0.1',
'192.168.0.1',
]
</code></pre>
<p>拆分<code>.</code>,并使用最后一个项(最后一个八位字节)作为排序的键。当然,对于'127.0.0.1'和'192.168.0.1',您可能需要根据最后第二个八位字节、最后第三个八位字节和第一个八位字节进行排序。在</p>
<p>因此将此行为用作<code>key</code>:</p>
^{pr2}$
<p>请注意,<code>13</code>在<code>4</code>之前列出。因此,还要确保将每个项目作为数字而不是字符串进行比较:</p>
<pre><code>>>> sorted(addr_list, key=lambda ip: map(int, reversed(ip.split('.'))))
['127.0.0.1', '192.168.0.1', '1.2.3.4', '10.11.12.13']
</code></pre>
<p>将其分配给另一个列表或执行就地排序:</p>
<pre><code>>>> addr_list.sort(key=lambda ip: map(int, reversed(ip.split('.'))))
>>> addr_list
['127.0.0.1', '192.168.0.1', '1.2.3.4', '10.11.12.13']
</code></pre>