擅长:python、mysql、java
<p>你需要两个功能。一种是迭代分组,另一种是求最大值:</p>
<pre><code>def find_highest_pair(tuple):
highest_value = 0
result = []
for pair in tuple:
if pair[2] > highest_value:
highest_value = pair[2]
result = pair
return result
def grouping(tuple,n):
stack = []
result = []
backup = []
if tuple:
check_pair = tuple.pop(0)
backup = tuple
if tuple:
if check_pair[n] == tuple[0][n]:
stack.append(tuple[0])
tuple.pop(0)
if not stack and len(tuple) > 0:
return grouping(backup,n)
stack.append(check_pair)
result = find_highest_pair(stack)
return result
tuple1 = [('Carlo', 'Helen', 9), ('Carlo', 'Mary', 4), ('Jan', 'Rolly', 1), ('Renzi', 'Rolly', 3)]
tuple2 = [('Sofy', 'Reem', 9), ('Sofy', 'David', 5), ('Sofy', 'keem', 3), ('Roly', 'Tony', 4), ('Gianni', 'Tony', 2)]
print "1:"
print grouping(tuple1,0)
print grouping(tuple1,1)
print "2:"
print grouping(tuple2,0)
print grouping(tuple2,1)
</code></pre>