You can sort it like this:
text = [
["Atlanta", 40,50,23,18 ],
["Denver ", 56,78,34,11 ],
["Miami ", 40,34,18,30 ],
["Orlando", 55,67,23,11 ],
["Memphis", 44,23,56,11 ],
["Boston ", 55,67,33,23 ],
["Tampa ", 45,67,54,77 ]]
for a in text:
city = a[0]
revenue = [int(i) for i in a[1:5]]
total = sum(revenue)
avg = sum(revenue)/len(revenue)
# print("{:<12}{}{:>6}{:>9.2f}{:>9.2f}{:>9.2f}".format(city, revenue, total, avg))
a.append(total) # append it to your former array
a.append(avg) # append it to your former array
print ("1.Q")
printIt(sorted(text, key=lambda x: x[1])) # sort by 1. Quarter number
print ("2.Q")
printIt(sorted(text, key=lambda x: x[2])) # sort by 2. Quarter number
print ("3.Q")
printIt(sorted(text, key=lambda x: x[3])) # etc.
print ("4.Q")
printIt(sorted(text, key=lambda x: x[4]))
print ("Total")
printIt(sorted(text, key=lambda x: x[5]))
print ("Avg")
printIt(sorted(text, key=lambda x: x[6]))
sorted(..)
will create a new list object - you could simply store it into something you want to use - for demonstational purposes just printed them the easy way.
Output:
1.Q
[ ['Atlanta', 40, 50, 23, 18, 131, 32.75],
['Miami ', 40, 34, 18, 30, 122, 30.5],
['Memphis', 44, 23, 56, 11, 134, 33.5],
['Tampa ', 45, 67, 54, 77, 243, 60.75],
['Orlando', 55, 67, 23, 11, 156, 39.0],
['Boston ', 55, 67, 33, 23, 178, 44.5],
['Denver ', 56, 78, 34, 11, 179, 44.75]]
2.Q
[ ['Memphis', 44, 23, 56, 11, 134, 33.5],
['Miami ', 40, 34, 18, 30, 122, 30.5],
['Atlanta', 40, 50, 23, 18, 131, 32.75],
['Orlando', 55, 67, 23, 11, 156, 39.0],
['Boston ', 55, 67, 33, 23, 178, 44.5],
['Tampa ', 45, 67, 54, 77, 243, 60.75],
['Denver ', 56, 78, 34, 11, 179, 44.75]]
3.Q
[ ['Miami ', 40, 34, 18, 30, 122, 30.5],
['Atlanta', 40, 50, 23, 18, 131, 32.75],
['Orlando', 55, 67, 23, 11, 156, 39.0],
['Boston ', 55, 67, 33, 23, 178, 44.5],
['Denver ', 56, 78, 34, 11, 179, 44.75],
['Tampa ', 45, 67, 54, 77, 243, 60.75],
['Memphis', 44, 23, 56, 11, 134, 33.5]]
4.Q
[ ['Denver ', 56, 78, 34, 11, 179, 44.75],
['Orlando', 55, 67, 23, 11, 156, 39.0],
['Memphis', 44, 23, 56, 11, 134, 33.5],
['Atlanta', 40, 50, 23, 18, 131, 32.75],
['Boston ', 55, 67, 33, 23, 178, 44.5],
['Miami ', 40, 34, 18, 30, 122, 30.5],
['Tampa ', 45, 67, 54, 77, 243, 60.75]]
Total
[ ['Miami ', 40, 34, 18, 30, 122, 30.5],
['Atlanta', 40, 50, 23, 18, 131, 32.75],
['Memphis', 44, 23, 56, 11, 134, 33.5],
['Orlando', 55, 67, 23, 11, 156, 39.0],
['Boston ', 55, 67, 33, 23, 178, 44.5],
['Denver ', 56, 78, 34, 11, 179, 44.75],
['Tampa ', 45, 67, 54, 77, 243, 60.75]]
Avg
[ ['Miami ', 40, 34, 18, 30, 122, 30.5],
['Atlanta', 40, 50, 23, 18, 131, 32.75],
['Memphis', 44, 23, 56, 11, 134, 33.5],
['Orlando', 55, 67, 23, 11, 156, 39.0],
['Boston ', 55, 67, 33, 23, 178, 44.5],
['Denver ', 56, 78, 34, 11, 179, 44.75],
['Tampa ', 45, 67, 54, 77, 243, 60.75]]
This applies what is shown in How to sort a list of objects based on an attribute of the objects? to your problem. Flagged question as duplicate.