擅长:python、mysql、java
<p>您的解决方案看起来很慢,因为它会在每次更新时迭代列表(即数据)。更好的方法是使用字典,它在每次更新时取O(1)而不是O(n)。在</p>
<p>以下是我使用字典的解决方案:</p>
<pre><code>file = open('input.txt', 'r')
#coordinates
c = {}
for line in file:
#items
(x, y, z) = (float(n) for n in line.split())
if (x, y) not in c:
c[(x, y)] = [z, 1]
elif c[(x, y)][0] > z:
c[(x, y)][0], c[(x, y)][1] = z, 1
elif c[(x, y)][0] == z:
c[(x, y)][1] += 1
for key in c:
print("{} {} {} {}".format(key[0], key[1], c[key][0], c[key][1]))
</code></pre>