2015-06-22 29 views
2

我正在編寫一個腳本,它接受一個字符串作爲輸入,並使用.split(sep =',')函數將其拆分爲一個列表。然後,列表中的一些項目將被拆分成子列表。例如:用於子分隔符的Python約定

input = 'my,string,1|2|3' 
    mylist = input.split(',') 
    mylist[2] = mylist[2].split('|') 
    print(mylist) 
    > ['my','string',['1','2','3']] 

該代碼的工作原理沒有問題。 (我知道在列表中的哪個位置將有子列表。)我的問題是:在python中是否有任何約定,應使用分隔符來分隔最終將轉換爲數字(int或float)的字符串。假設','已被用作第一個分隔符?

作爲程序員,我可以請求使用我喜歡的任何分隔符來格式化字符串。但是我會有很多用戶,所以如果有一個分離數值的約定,我想跟着它。請注意,這些數字可能是浮點值,所以我不想使用字符'連字符'或'句點'作爲分隔符。

回答

0

我應該這樣說,我從來沒有聽說過這樣的慣例,但我喜歡這個問題。英語中嵌套列表的慣例是使用內部列表的逗號和外部列表的分號,例如:

我吃過了:雞蛋,培根和蘋果早餐;烤麪包,金槍魚和 香蕉午餐;和晚餐的雞肉,沙拉和土豆。

該公約建議input = 'my;string;1,2,3;'

我也喜歡使用換行符的想法:input = 'my\nstring\n1,2,3\n'。它具有易於讀取/寫入CSV的優點。

+0

謝謝!我從來沒有聽說過一個公約,但我認爲這值得檢查。我喜歡換行'\ n'的想法(它自然導致數組式格式),但在我的應用程序中,我正在從.csv文件中讀取字符串作爲一行。實際上,我有三重嵌套列表(我真的使用3個不同的分隔符)! – SNygard