<p>如果您将<code>sorted</code>与<code>key</code>参数一起使用,这并不难。在</p>
<p>下面是代码如果你不想看,我会在下面解释:</p>
<pre><code>from datetime import datetime
trades=[['AAA', '2011-01-03', '11:03:51', 21.5],['BBB', '2011-01-03','11:03:57', 31.5],
['AAA', '2011-01-03', '11:04:20', 21.55],
['BBB', '2011-01-03','11:04:19', 32.01], ['BBB', '2011-01-03','11:04:52', 31.7]]
trades=[[i[0], datetime.strptime(i[1]+" "+i[2], "%Y-%m-%d %H:%M:%S"), i[3]] for i in trades]
most_liquid, *others, least_liquid = sorted(set(i[0] for i in trades), key=trades.count)
A=sorted((i for i in trades if i[0]==least_liquid), key=lambda n: n[1])[-1]
B=sorted((i for i in trades if i[0]==most_liquid), key=lambda n: abs(n[1]-A[1]))[0]
</code></pre>
<p>它首先将每个交易从使用时间的字符串表示转换为日期时间对象。它使用<code>datetime.strptime</code>类方法来实现这一点。然后通过分类交易来计算股票的流动性。<code>*others</code>可推广到{<cd5>}个股票。然后它只过滤<code>less_liquid</code>交易,然后根据time参数对它们进行排序。然后它按名称<code>more_liquid</code>进行过滤,并根据它与<code>A</code>交易之间的绝对差异进行排序。在</p>
<p>所以您想要的对象是<code>A</code>和<code>B</code>。它们不完全是您指定的,因为它们将使用datetime而不是字符串,但是使用<a href="https://docs.python.org/2/library/datetime.html#datetime.datetime.strftime" rel="nofollow">^{<cd11>}</a>函数应该很容易修复。在</p>