Problème pour supprimer les commentaires dans une liste
Foutriquet
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voici mon problème :
Je dois réussir à supprimer les commentaires commençant par des # dans ma liste de caractère. D'autre part, si la suppression des caractères créée une ligne vide, je dois supprimer la ligne. Exemple :
['M# MM', 'M'','#TEXT']] doit devenir [['M'], ['M']]
Quand il y a un #, je dois donc supprimer tout ce qu'il y a derrière jusqu'à la virgule.
Voici mon programme, je ne comprends vraiment pas comment supprimer tout ce qu'il y a derrière les # qui peuvent se situer n'importe où
J'ai bien compris que ma ligne était fausse, mais je ne comprends vraiment pas comment faire.
Merci pour l'aide!
Voici mon problème :
Je dois réussir à supprimer les commentaires commençant par des # dans ma liste de caractère. D'autre part, si la suppression des caractères créée une ligne vide, je dois supprimer la ligne. Exemple :
['M# MM', 'M'','#TEXT']] doit devenir [['M'], ['M']]
Quand il y a un #, je dois donc supprimer tout ce qu'il y a derrière jusqu'à la virgule.
Voici mon programme, je ne comprends vraiment pas comment supprimer tout ce qu'il y a derrière les # qui peuvent se situer n'importe où
def nettoyer_carte(carte): T=carte for i in range(len(T)): if "#" in T[i]: T[i]=T[i].replace(T[i:], "") if T[i]=="": T=T.remove(T[i])
python affiche : TypeError: replace() argument 1 must be str, not list
J'ai bien compris que ma ligne était fausse, mais je ne comprends vraiment pas comment faire.
Merci pour l'aide!
Configuration: Windows / Chrome 80.0.3987.149
A voir également:
- Problème pour supprimer les commentaires dans une liste
- Supprimer rond bleu whatsapp - Guide
- Liste déroulante excel - Guide
- Supprimer une page dans word - Guide
- Supprimer les commentaires word - Guide
- Comment supprimer une application préinstallée sur android - Guide
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, peux-tu donner un exemple complet, qui permet de comprendre ce qu'est carte?
tout fonctionne parfaitement quand je fais:
tout fonctionne parfaitement quand je fais:
k=["j1j5","jj"] nettoyer_carte(k)
Carte est un fichier txt que j'ai lu sous python et mis dans une liste. Voici a quoi ressemble la carte :
MMMMMMMMMM
MH MMMMM
MMMM MMMMM
MM MM MM
MM M MM
MM CMMM MM
MMMMMCM M
M M
MAMMM MMMM
MMMMMMMMMM
Avec ce programme, je la mets dans une liste :
def lire_carte(nomfichier):
lignes=""
chaine=open(nomfichier,"r").read()
lignes=chaine.split("\n")
return lignes
chaine.close()
En l'appliquant sur ma carte (qui correspond à mon labyrinthe j'obtiens ceci :
['MMMMMMMMMM', 'MH MMMMM', 'MMMM MMMMM', 'MM MM MM', 'MM M MM', 'MM CMMM MM', 'MMMMMCM M', 'M M', 'MAMMM MMMM', 'MMMMMMMMMM']
et à présent, voici la consigne que j'ai :
Créer une fonction nettoyer_carte(carte) qui prend en entrée un tableau 1D de chaînes de caractères représentant la carte et qui renvoie la carte nettoyée, selon ces règles :
Suppression des commentaires : tout ce qui suit le caractère # est supprimé (# inclus)
Toute ligne vide est supprimée (donc aussi celle qui sont devenues vides après suppression des commentaires)
Je dois donc pouvoir supprimer les éventuelles commentaires qui se sont glisser dans la "carte", exemple :
['MMMMMMM#MMM', 'MH MMMMM', 'MMMM# MMMMM', 'MM MM MM', 'MM M MM', 'MM CMMM MM', 'MMMMMCM M', 'M M', '#text', 'MAMMM MMMM', 'MMMMMMMMMM']
j'espère que j'ai été un peu plus clair...
Je suis donc bloqué sur le problème de suppression des commentaires dans la listes que j'ai créé.
peut-être pourrais-tu donner un exemple?
en attendant, remplace cette ligne par
exemple :
['MM#MM', 'MM', 'M#text'] doit devenir : ['MM', 'MM', 'M'] (Les # ainsi que ce qu'il y a droite du # jusqu'à la virgule a été supprimé)