LINUX.ORG.RU

добрый день пожалуйста опищите как сделать сортировку используя последний елемент списка?Сортирую Списки «lists» в общий список который их хранит и называеться «listy»

 


0

1
suma += Highest_score
                lists.append([Highest_score, i])
            lists.extend([suma])
            listy.append(lists)


for index in listy:

    for i in range(0, len(index)): 
  
        if i == (len(index)-1): 
 
            print(listy, i)  

i - это последний елемент. Как посортировать не используя готового sort()?

Пример в стадии разработки:

for n in listy: 
    def Sort(n): 

        l = len(n)

        #print(i)
        #for i in range(0, len(n)):
        for i in range(0, l):
            #if i == l-1:
            for j in range(0, l-i-1): 
                float(j)
                if (n[j][1] > n[j + 1][1]): 
                    tempo = n[j] 
                    n[j]= n[j + 1] 
                    n[j + 1]= tempo 
            print("Sorted", n)

что я делаю не так? вот оригинальный пример с интернета

def Sort(sub_li): 
    l = len(sub_li) 
    for i in range(0, l): 
        for j in range(0, l-i-1): 
            if (sub_li[j][1] > sub_li[j + 1][1]): 
                tempo = sub_li[j] 
                sub_li[j]= sub_li[j + 1] 
                sub_li[j + 1]= tempo 
    return sub_li 
  
# Driver Code 
sub_li =[['rishav', 10], ['akash', 5], ['ram', 20], ['gaurav', 15]] 
print(Sort(sub_li)) 


Последнее исправление: katemisik (всего исправлений: 5)

Что за набор слов? Ничего не понятно.

последний елемент?

«Последний элемент» чего?

gruy ★★★★★
()

добрый день пожалуйста опищите как работает этот sort()?

Работает очевидным образом. Спрашивайте, что конкретно непонятно. Мы не телепаты.

wandrien ★★
()

data.sort(key=lambda x: x[‘age’], reverse=True)

Сортировка происхродит по массиву объектов. В обратном порядке (reverse=True). По полю age (x[‘age’]).

как посортировать используя последний елемент?

Нужно вместо ‘age’ использовать ‘name’ (ну или что там подразумевается под «последним» элементом)

С Вас $1000, не благодарите.

kostyarin_ ★★
()
Последнее исправление: kostyarin_ (всего исправлений: 1)
Ответ на: комментарий от gruy

ну имею ввиду полное описание как работает сорт в подобных случаях. Не просто Sort() a tam def mergeSort(lista): if len(lista) > 1: mid = len(lista) // 2 left = lista[:mid] right = lista[mid:]

    mergeSort(left)
    mergeSort(right)

    i = 0
    j = 0
    k = 0
   
    while i < len(left) and j < len(right):
        if left[i] < right[j]:
          lista[k] = left[i]
          i += 1
        else:
            lista[k] = right[j]
            j += 1
        k += 1

    while i < len(left):
        lista[k] = left[i]
        i += 1
        k += 1

    while j < len(right):
        lista[k]=right[j]
        j += 1
        k += 1
katemisik
() автор топика
Ответ на: комментарий от KivApple

тут ни одного примера кода для моего вопроса

katemisik
() автор топика
Ответ на: комментарий от katemisik

list последний елемент для list

Что?!

gruy ★★★★★
()
Ответ на: комментарий от katemisik

я понимаю что по умолчанию это qiuck sort?

Да с чего бы? Quick Sort для меньшего кол-ва перестановок. Это его основная цель.

kostyarin_ ★★
()

Бери первый элемент если он больше последнего меняй их местами теперь бери второй элемент если он больше последнего меняй местами иначе бери третий и тоже сравнимай и меняй местами если надо. И так по кругу много много раз пока дойдя до середины все с верху будут меньше тех что с низу.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.