2017-10-21 14 views
0

im essayant d'écrire une fonction qui regardera M. et le remplacer par M. dans une liste. Cependant, il ne cesse de dire que l'objet 'list' n'a pas d'attribut 'replace'. J'ai regardé certaines choses mais je n'arrive pas à le comprendre. Toute aide est appréciée!Remplacer M. Avec M. dans la fonction Python retournant l'erreur

Fonction actuelle

def remove_abbreviations(abbreviation): 
    list(abbreviation) 
    words = [abbreviation.replace('Mr.', 'Mr') for w in len(abbreviation)] 
abréviation

est une liste qui a été généré par la lecture dans un fichier texte et le diviser par un espace

+1

len (abréviation) retourne Len de l'abréviation, qui est un objet int non itérables. –

+0

J'ai enlevé cela et maintenant il dit que l'objet 'list' n'a pas d'attribut 'replace' –

+0

words = [w.replace ('Mr.', 'Mr') pour w en abréviation] # en supposant que abréviation est une liste de chaînes –

Répondre

1

Voici comment vous pouvez remplacer les valeurs dans une liste.

def remove_abbreviations(abbreviation): 
    words = [w.replace('Mr.', 'Mr') for w in abbreviation] 
    return words 

old_list =['Mr.X', 'Mr.Y'] 
new_list = remove_abbreviations(old_list) 
print(new_list) 

Estampes,

['MrX', 'MrY'] 

écriture d'une fonction est probablement surpuissant,

old_list =['Mr.X', 'Mr.Y'] 
new_list = [w.replace('Mr.', 'Mr') for w in old_list] 
print(new_list)