0
votes

Troublant avec diviser une chaîne en python puis comparer chaque section individuelle à une liste de valeurs

J'ai des problèmes avec un laboratoire. Je suis chargé de prendre des informations, séparant cette entrée basée sur des espaces et tester pour voir si c'est dans une liste séparée. J'ai une fonction qui voit si la valeur est dans la liste, mais lorsque je teste une phrase que je sais, c'est dans la liste, rien ne se présente. J'ai essayé de voir comment la scission de la cordes divisait ma phrase "Austin est cool" et quand j'ai saisi la ville [0], elle a renvoyé juste un "A". J'ai également créé des fonctions qui ont analysé via un fichier TXT et créé une liste afin que je puisse comparer et un autre qui a réellement vérifié pour voir si le mot était situé dans la liste. Vous trouverez ci-dessous mon programme final + fonctions: xxx pré>

\\\\\\\\\\\\\\\\\\\\\\\ p> xxx pré>

\\\\\\ p>

list_of_cities = load_city_corpus
while True:
   city_test = input("Enter some text (or ENTER to quit):")
   if city_test == "":
      break
   city_test.split(" ")
   print(city_test[0]) #prints "a"
   for item in city_test:
      if is_a_city(city_test,list_of_cities) == True:
          print(f"{city_test.title()} is a city")
   else:
      break


0 commentaires

3 Réponses :


0
votes

Vous n'abandonnez pas le résultat de votre scission - cela ne se produit pas en place. Lorsque vous vérifiez city_test [0] Vous vérifiez simplement l'élément 0ème de votre chaîne - qui est un A.

Remplacer city_test.split ("") avec city_test = city_test.split ("") pour faire correspondre la fonctionnalité de votre attente.


1 commentaires

Il convient de noter qu'il y a quelques autres bugs dans ce code, vous pouvez donc donner une autre lecture!



0
votes

On utilise city_test.split (""), vous pouvez diviser la chaîne en fonction des espaces. Mais l'original City_Test = ["Austin est cool"] reste la même chose. Stockez la liste dans une variable après la fraction.

list_name = city_test.split ("")

Vous pouvez utiliser un autre nom de variable au lieu de City_Test et stockez-le si vous souhaitez que la liste d'origine soit présente.


0 commentaires

0
votes

Vous avez quelques erreurs dans votre code. Voici une version fixe avec quelques commentaires:

city_splits = city_test.split()
print(city_splits[0]) #prints "a" -- not anymore! :)
for item in city_splits:
   if is_a_city(item, list_of_cities) == True: # item, not city_test
       print(f"{item.title()} is a city")          # item, not city_test


1 commentaires

Merci beaucoup, cela aide certainement! Ouais, je voulais analyser la chaîne pour détecter la ville n'importe où dans la chaîne, je viens d'utiliser "Austin est cool" comme moyen de le tester. Encore une fois, merci beaucoup pour l'aide!