У меня есть проблемы с моим кодом, когда я сортирую мой-структуру в алфавитном порядке в зависимости от некоторого столбцаВ алфавитном порядке сортировать массив в структуре?
К примеру у меня есть:
name: Bela message: abc priority: 1
name: Carla message: efg priority: 0
name: Ana message: xyz priority: 0
И выход должен быть таким:
name: Ana message: xyz priority: 0
name: Bela message: abc priority: 1
name: Carla message: efg priority: 0
Мой код выглядит так:
class structura:
prioritate = 0
destinatar = ""
continut = ""
n = input("mesaje maxime: ");
cutie = [structura() for i in range(n)]
for i in range(n):
print "\nAdaugare mesaj %d" %(i + 1)
cutie[i].prioritate= input("Prioritate mesaj :")
cutie[i].destinatar = raw_input("Destinatar mesaj: ")
cutie[i].continut = raw_input("Continut mesaj: ")
i=0
while i<n-1:
if cutie[i].prioritate==0:
if cutie[i].destinatar>cutie[i+1].destinatar:
cutie[i].destinatar,cutie[i+1].destinatar=cutie[i+1].destinatar,cutie[i].destinatar
cutie[i].continut,cutie[i+1].continut=cutie[i+1].continut,cutie[i].continut
i=0
print i
else:
i+=1
else:
i+=1
for i in range(n):
print "cutie: prioritate= %d | destinatar= %s | continut= %s" %(cutie[i].prioritate, cutie[i].destinatar, cutie[i].continut)
Но с этим сортировочным кодом это не работает (это свой родом просто cutie.destinatar только вместо cutie.destintar и cutie.continut):
i=0
while i<n-1:
if cutie[i].prioritate==0:
if cutie[i].destinatar>cutie[i+1].destinatar:
cutie[i].destinatar,cutie[i+1].destinatar=cutie[i+1].destinatar,cutie[i].destinatar
cutie[i].continut,cutie[i+1].continut=cutie[i+1].continut,cutie[i].continut
i=0
print i
else:
i+=1
else:
i+=1
Я попытался с отсортированной функцией тоже, но это не делает работайте с моей структурой. Есть ли решение?
я судимый но это doens't рода с моей структурой классом – Gradin98
'sorted' не сортирует список на месте, он returs нового. отредактировал ответ –
Да, теперь это работа, спасибо за помощь, однажды в документации для такого простого решения – Gradin98