<pre><code> # this contains both lists
lt = [('Carlo', 'Helen', 9), ('Carlo', 'Mary', 4), ('Jan', 'Rolly', 1), ('Renzi', 'Rolly', 3),
('Sofy', 'Reem', 9), ('Sofy', 'David', 5),('Sofy', 'keem', 3), ('Roly', 'Tony', 4), ('Gianni', 'Tony', 2)]
def max_value_tuples(tuple_list):
# find max value tuples in the list of tuple
import itertools as it
import operator as op
groups = []
# group by first element
for k, g in it.groupby(tuple_list, key=op.itemgetter(0)):
groups.append(list(g))
# group by second element
for k, g in it.groupby(tuple_list, key=op.itemgetter(1)):
groups.append(list(g))
final = []
# leave out idividiual tuples
for el in groups:
if len(el) > 1:
final.append(el)
result = []
# sort and print with highest scrores
for el in final:
el = sorted(el, key=op.itemgetter(2))
result.append(el[-1])
return result
print(max_value_tuples(lt))
[('Carlo', 'Helen', 9), ('Sofy', 'Reem', 9), ('Renzi', 'Rolly', 3), ('Roly', 'Tony', 4)]
with this and your astfile, you could do:
all_lists = []
for x in astfile:
x_list = max_value_tuples(x)
all_lists.append(x_list)
</code></pre>