擅长:python、mysql、java
<p>您还没有给出任何有关如何对生成进行排序的规则。我假设您希望根据以下条件订购:</p>
<ul>
<li><code>firebet-relayws_44.0.99-1_amd64.deb</code>=>;<code>44.0.99-1</code></li>
<li>然后<code>44.0.99-1</code>=>;一个数字序列<code>(44, 0, 99, 1)</code></li>
<li>我们是按顺序订购的。你知道吗</li>
</ul>
<p>然后尝试以下方法:</p>
<pre><code>def get_version(txt):
# extract eg 44.0.99-1
version_data = txt.split("_")[1]
# split into 44.0.99 and 1
version, release = version_data.split("-")
# convert them to a list of numbers
return [int(x) for x in version.split(".")] + [int(release)]
</code></pre>
<p>例如:</p>
<pre><code>>>> print(get_version("firebet-relayws_44.0.99-1_amd64.deb"))
[44, 0, 99, 1]
</code></pre>
<p>现在我们把它作为键函数传递给<code>max</code></p>
<pre><code>>>> print(max(['mybuild-relayws_44.0.99-1_amd64.deb', 'mybuild-relayws_44.0.101-1_amd64.deb'], key=get_version))
mybuild-relayws_44.0.101-1_amd64.deb
</code></pre>