0
I own a tuple with the following values:
('beringela', 10, 1.99)
('arroz', 5, 4.99)
('peixe', 2, 9.99)
('abacaxi', 100, 3.99)
I must order it by the third column, but I cannot use Builtin organization methods from Python3, I mean, I need to make my own produtos.sort(key=lambda x: x[3])
in hand.
To sort through the first and second field I used Bubblesort, but I’m not able to use it for the third field. Follow the code I used for the first two fields:
def ordenaCampoUm(produtos):
tam = len(produtos)
for i in range(tam):
troca = False
for j in range(1, tam-i):
if produtos[j] < produtos[j-1]:
produtos[j], produtos[j - 1] = produtos[j-1], produtos[j]
troca = True
if not troca:
break
print("----- Listagem dos Produtos Ordenados Pelo Campo: 1 -----")
for linha in produtos:
print(tuple(linha))
print("-----------------------------------------------------------------------")
print()
def ordenaCampoDois(produtos):
tam = len(produtos)
for i in range(tam):
for j in range(0, tam-i-1):
if produtos[j][1] > produtos[j+1][1]:
temp = produtos[j]
produtos[j] = produtos[j+1]
produtos[j+1] = temp
print("----- Listagem dos Produtos Ordenados Pelo Campo: 2 -----")
for linha in produtos:
print(tuple(linha))
print("-----------------------------------------------------------------------")
print()
Some light on how to solve?
But the ordering is the same in the 3 fields, why will you have three functions that do the same thing? It is not easier to implement the parameter
key
in its function and use it to sort the 3 fields?– fernandosavio