2017-10-18 64 views
0

字符串我有一個代碼如下如何更換可變

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

上述效果很好。現在,變量userid作爲一個字符串有字符在將要替換。我試過這段代碼,並給出下面顯示的錯誤。請注意:變量the_user.phonelist是一個Python列表。我想用列表替換字符[]

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

回答

0

由於錯誤提示,您必須將列表轉換爲字符串做這個

一種方法是使用一個連接:

phonelist_str = ''.join(the_user.phonelist) 

這隻會工作,但如果所有的列表中的項目是字符串。如果沒有,你必須用一個列表理解配對,以所有列表的項目轉換爲字符串:

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

一旦你有一個字符串,你可以做你的代替:

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

請注意,如果目標只是用'list'的表示替換它們,他們可以這樣做:'userid.replace('[]',str(the_user.phonelist))',不需要轉換元素一個接一個。 – ShadowRanger

+0

誠然,你也可以做到這一點。這取決於所需的字符串格式是什麼。 –