tri d'une liste de mots

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Salut à tous, j'essaye de résoudre depuis un moment des défis sur hackthis et je suis au niveau programmation lvl1

le but est de récupérer une liste de mots et de les renvoyer trié

J'ai réussi à m'identifier est à aller chercher les mots et à les renvoyer mais j'ai un problème au niveau du tri le dernier mot est jamais à la bonne place

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from requests import session

from bs4 import BeautifulSoup

payload = {
    'username': 'user',
    'password': 'pwd'
}

with session() as session:
    session.post('https://www.hackthis.co.uk/?login', data=payload)
    response = session.get('https://www.hackthis.co.uk/levels/coding/1')
    soup = BeautifulSoup(response.text,'html.parser')
    li = (soup.find("textarea").text.split(','))


      
    print(li)
    for i in range(10):
      print('\n')

    li.sort()
    print(li)
    string = str()
    for i in li:
      string += "{}, ".format(i.strip())
    size = len(string)
    final = string[0:-2] #enleve la dernière virgule + l'espace

    print(final)
    payl = {'answer': string}


    rep = session.post('https://www.hackthis.co.uk/levels/coding/1', data=payl)
    print(rep.status_code)
    for i in range(10):
      print('\n')

exemple de donnée:

li avant sort:

['likely', ' said', ' may', ' were', ' has', ' will', ' some', ' its', ' could', ' where', ' among', ' would', ' have', ' often', ' does', ' them', ' got', ' rather', ' say', ' their', ' just', ' least', ' while', ' but', ' that', ' been', ' either', ' every', ' did', ' are', ' yet', ' with', ' him', ' whom', ' hers', ' and', ' off', ' dear', ' like', ' almost', ' the', ' most', ' why', ' which']

li après sort:

[' almost', ' among', ' and', ' are', ' been', ' but', ' could', ' dear', ' did', ' does', ' either', ' every', ' got', ' has', ' have', ' hers', ' him', ' its', ' just', ' least', ' like', ' may', ' most', ' off', ' often', ' rather', ' said', ' say', ' some', ' that', ' the', ' their', ' them', ' were', ' where', ' which', ' while', ' whom', ' why', ' will', ' with', ' would', ' yet', 'likely']

final:

almost, among, and, are, been, but, could, dear, did, does, either, every, got, has, have, hers, him, its, just, least, like, may, most, off, often, rather, said, say, some, that, the, their, them, were, where, which, while, whom, why, will, with, would, yet, likely

Je pensais que le problème venait de l'espace mais même avec i.strip() ca ne fonctionne pas

Une idée d'où pourrait venir l'erreur pour ce dernier mot qui n'est pas au bon endroit ?

Édité par d3m0t3p

conseil: le thé est meilleur avec un zeste de citron

+0 -0

Salut je ne connais pas le python , mais je pense que ton programme ne prends pas en compte likely ( li avant sort ) vue que ton code classe en mettant devant celui qui viens avant ! revois au niveau des paramètres ( ou tu récupère les mots ) Le problème d'après moi c'est au niveau ou tu récupères le premier mots ( qui n'est pas likely selon tes résultats )
Désolée si je t'aide pas , je donnais juste ma pensée :-°

Édité par AshSnowLuv

AshSnowLuv#~UnDeadRoOt

+0 -0

Cette réponse a aidé l'auteur du sujet

Tous tes mots sont précédés d'un espace sauf 'likely'. Tu dois te débarrasser des espaces avant le sort

NB: on écrit tri et non trie (qui signifie tout a fait autre chose en informatique).

Édité par yoch

+3 -0
Staff

Rien à voir avec le sujet mais je te déconseille très vivement d'utiliser BeautifulSoup. Cette bibliothèque jouit d'une hype qu'elle ne mérite pas (ou plus), étant donné que lxml est tout autant capable de parser du html cassé, beaucoup plus simple et directe à utiliser, et pratiquement imbattable en perfs (un bon x10-x12 par rapport à BS4 lorsque j'ai dû les évaluer l'année dernière).

D'autant que cette dernière supporte la recherche par xpath, ce qui simplifie beaucoup l'accès aux diverses données dans un document.

Édité par nohar

I was a llama before it was cool

+2 -0
Auteur du sujet

je te déconseille très vivement d'utiliser BeautifulSoup. lxml est tout autant capable de parser du html cassé, beaucoup plus simple et directe à utiliser, et pratiquement imbattable en perfs (un bon x10-x12 par rapport à BS4 lorsque j'ai dû les évaluer l'année dernière).

nohar

Je voulais justement utiliser ce code comme base pour un autre projet, je vais plutôt utiliser lxml alors

merci du conseil ;-)

conseil: le thé est meilleur avec un zeste de citron

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte