tri d'une liste de mots

Le problème exposé dans ce sujet a été résolu.

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 ?

+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 :-°

+0 -0

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.

+1 -0

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 ;-)

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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