Trie avancée dans une liste imbriquée sans sort() - Python

A voir également:Trie avancée dans une liste imbriquée sans sort()[PERL] Trier éléments d'un tab SANS sort ✓ - Forum - Perl Excel liste déroulante sans vide ✓ - Forum - Excel Excel liste déroulante sans doublon ✓ - Forum - Excel Liste site sans 3d secure 2018 - Forum - Internet / Réseaux sociaux Liste imbriquée excel - Conseils pratiques - Excel

Bonjour, je suis nouveau et j'aurais besoin d'aide sur une fin de projet, j'ai actuellement une fonction qui me trie une liste suivant l'age inverse des personnes grace a la fonction sorted depuis une liste imbriquée (1 liste dans l'autre), toutefois je voudrais le faire sans utiliser des fonctions de type sort ou sorted.

C'est a dire qu'en clair je voudrais le faire a la main, sans que "sort" n'apparaisse :)



La partie concernée est celle-ci :


from datetime import datetime
lst = [['WILSON', 'MIKE', 'H', '26/06/1950'], ['EMERIC', 'JAMES', 'H', '27/06/1960'], ['MOPAL', 'ARTHUR', 'H', '27/06/1966']]
def agepersonne():
print(sorted(lst, key=lambda item: datetime.strptime(item[3], '%d/%m/%Y'), reverse=True))
agepersonne()



Au final le résultat est celui-ci :



[['MOPAL', 'ARTHUR', 'H', '27/06/1966'],
['EMERIC', 'JAMES', 'H', '27/06/1960'],
['WILSON', 'MIKE', 'H', '26/06/1950']]

Ce qui est tout a fait correct par rapport a ce que je souhaite, sauf que je n'arrive pas a le faire " a la main... " .
Si une personne peut m'aider merci..
            

Forum

A voir également:Trie avancée dans une liste imbriquée sans sort()[PERL] Trier éléments d'un tab SANS sort ✓ - Forum - Perl Excel liste déroulante sans vide ✓ - Forum - Excel Excel liste déroulante sans doublon ✓ - Forum - Excel Liste site sans 3d secure 2018 - Forum - Internet / Réseaux sociaux Liste imbriquée excel - Conseils pratiques - Excel

Web: www.shapebootstrap.net

1 réponse

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonsoir,

Je suppose que si tu souhaites créer ta propre fonction de tri, c'est dans un but pédagogique, de ce fait te fournir du code tout fait ne servirait donc à rien.
Maintenant des algorithmes de tri il en existe beaucoup.
https://fr.wikipedia.org/wiki/Algorithme_de_tri

Le plus commun et sans doute le plus simple à mettre en oeuvre est le tri par insertion.
https://fr.wikipedia.org/wiki/Tri_par_insertion

Tu sais comment trier tes dates, tu n'auras donc juste besoin pour créer ton implémentation de tri que des méthodes insert et append de list.

Reply
réponses:
  • auteur

    //Modif du code avec suppression des / entre les chiffres //
    Je comprends le principe du programme qui a pour but de placer "une date" en fonction des autres, pour cela il analyse la liste afin de placer "une date" au bon endroit afin de garder la liste triée a chaque ajout.





    L = [['WILSON', 'MIKE', 'H', '19700626'], ['EMERIC', 'JAMES', 'H', '19670626'], ['MOPAL', 'ARTHUR', 'H', '19660627']]
    def trie(L):
    for i in range(1, len(L)):
    temporaire=L[i]
    j = i - 1
    while j >=0 and L[j] > temporaire:
    L[j+1] = L[j]
    j -= 1
    L[j+1] = temporaire
    return L
    print(trie(L))



    Le résultat :


    [['EMERIC', 'JAMES', 'H', '19670626'], ['MOPAL', 'ARTHUR', 'H', '19660627'], ['WILSON', 'MIKE', 'H', '19700626']]



    Donc il a trié les personnes suivant leur nom dans un ordre alphabétique, j'ai essayé diverses méthodes pour enlever les [[',']] et faire un retour a la ligne après chaque personne mais sans succés..
    J'aurais aussi aimé enlever les informations après le prénom, afin d'avoir un résultat du type :



    EMERIC JAMES
    MOPAL ARTHUR
    WILSON MIKE




    Si vous savez comment faire je suis preneur..

    Et bien sur j'ai encore une fois essayer de comprendre comment gérer les dates mais je suis désolé ce n'est pas compréhensible pour ma part..
    Je n'ai pas d'idée comment m'en sortir avec une variable qui contient YYYYMMJJ..
    Merci

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed