2017-10-18 4 views
0

J'ai un code comme suitComment remplacer une variable chaîne

with open(f1) as f: 
      userid=f.read().replace('0', str(instance.id)) 

Les travaux ci-dessus bien. Maintenant, la variable userid en tant que chaîne a le caractère In que vous souhaitez remplacer. J'ai essayé ce code et j'ai reçu les erreurs ci-dessous. S'il vous plaît noter: la variable the_user.phonelist est un Python LISTE. Je vais remplacer le caractère [] par la liste.

ans = userid.replace('[]', the_user.phonelist) 
Error: Can't convert 'list' object to str implicitly 

Répondre

0

Comme l'erreur l'indique, vous devez convertir la liste en une chaîne

Une façon de le faire est avec une jointure:

phonelist_str = ''.join(the_user.phonelist) 

Cela ne fonctionnera que si tous les Les éléments de la liste sont des chaînes. Sinon, vous devrez coupler avec une compréhension de la liste afin de jeter tous les éléments de la liste à cordes:

phonelist_str = ''.join([str(x) for x in the_user.phonelist]) 

Une fois que vous avez une chaîne, vous pouvez faire votre remplacer:

ans = userid.replace('[]', phonelist_str) 
+0

Rappelez-vous, si le but est juste de le remplacer par la représentation de la 'list', ils pourraient simplement faire:' userid.replace ('[]', str (the_user.phonelist)) ', pas besoin de convertir le éléments un par un. – ShadowRanger

+0

C'est vrai, vous pouvez le faire aussi. Cela dépend du format de chaîne souhaité. –