2017-03-07 250 views
-1

我有一個程序,它接受文本輸入並存儲輸入的單詞列表,但沒有重複。我需要將它們存儲在一個文件中,以便將它轉換爲字符串,並在每個單詞之間用逗號將其加入。字符串分隔符

現在,如果一個單詞附近有一個逗號,那麼它將會中斷。因此,我需要一個字符串來加入列表中不屬於任何項目的項目。

例如,如果一個項目是「狗」,字符串og無法使用,所以程序會知道這一點,並添加另一個字母,使其成爲一組獨特的字母。

然後我連接這些字符串重新創建輸入的文本,但它只適用於如果我分裂他們的字符串不是單詞的一部分。

我現在使用@#,因爲它不太可能在輸入的文本中,但我希望它是完美的。

+0

你絕對需要這樣做嗎?存儲列表比導出自己的分隔符更好。 – Denziloe

+0

@Dzilziloe很遺憾,這是一個測試特定技能的測試。抱歉。 – SRawes

+0

我編輯了這個問題,使它更直接。如何使用'\ n'? –

回答

0

考慮使用現有的序列化庫,將您的對象轉換爲字符串,而無需您自己創建算法。例如,json:

>>> import json 
>>> my_strings = ["foo", 'ba"r', "ba,z", "qu'x", "[email protected]#rt"] 
>>> s = json.dumps(my_strings) 
>>> s 
'["foo", "ba\\"r", "ba,z", "qu\'x", "[email protected]#rt"]' 
>>> type(s) 
<class 'str'> 
>>> result = json.loads(s) 
>>> result 
['foo', 'ba"r', 'ba,z', "qu'x", '[email protected]#rt'] 
>>> type(result) 
<class 'list'> 
+0

謝謝,這將工作,它只是我必須做一個具體的方式進行測試。 @Kevin – SRawes

+0

有什麼想法?這真的會有所幫助。也不是一個測試更多的調查,看看我們可以在現實世界中做得如何,所以我們可以問專家。@ Kevin – SRawes

+0

那麼,簡單的解決方案是使用「\ n」作爲分隔符,因爲那些是不可能使用input()輸入的,所以你知道你的單詞都不會包含它。如果這不令人滿意,我想我只是遍歷每個可能的分隔符,比如'import string;導入itertools;對於我在itertools.count(1)中:對於itertools.product(string.printable,repeat = i)中的s:...直到我找到一個不存在於任何單詞中的分隔符。 (但是這引發了一個問題,在閱讀文件時,你怎麼知道你在寫文件時使用了什麼分隔符?) – Kevin