回答
首先,你需要一個功能一個具有「字符串轉換爲浮動如果可能的話,否則,把它作爲一個字符串」:
def floatify(s):
try:
return float(s)
except ValueError:
return s
現在,你可以調用每個值,可以產生一個新的列表,或修改舊的地點。
既然你有一個嵌套列表,這意味着一個嵌套的迭代。您可能要通過明確這樣做的兩個步驟開始:
def floatify_list(lst):
return [floatify(s) for s in lst]
def floatify_list_of_lists(nested_list):
return [floatify_list(lst) for lst in nested_list]
當然,你可以它合併成一個功能只是通過使floatify_list
局部功能:
def floatify_list_of_lists(nested_list):
def floatify_list(lst):
return [floatify(s) for s in lst]
return [floatify_list(lst) for lst in nested_list]
您還可以通過做用內部表達式代替函數調用。如果你不知道如何自己做,我建議不要這樣做,因爲你不太可能理解它(複雜的嵌套列表理解對於專家來說很難理解),但是如果你必須:
def floatify_list_of_lists(nested_list):
return [[floatify(s) for s in lst] for lst in nested_list]
或者,如果你喜歡你的Python看起來像嚴重變相哈斯克爾:
def floatify_list_of_lists(nested_list):
return map(partial(map, floatify), nested_list)
有時我希望有一個類似三態的異常處理:'嘗試float(s)除(ValueError,TypeError)s'類的東西... – mgilson 2013-02-14 22:54:42
@mgilson:你可以很容易地寫功能。請參閱http://ideone.com/trX7EX以獲取idea.v(您可以'嘗試(浮動)'來使本例更簡單。) – abarnert 2013-02-14 22:56:05
當然。我可以用條件表達式做同樣的事情:'def ifify(x,condition,y):if condition:return x; return y' :) - 你的函數雖然很整潔。我喜歡它。 – mgilson 2013-02-14 22:59:26
- 1. 嵌套列表 - 字符串爲浮動
- 2. 將嵌套字符串列表轉換爲嵌套字符串列表
- 3. 在一個嵌套循環將字符串轉換爲浮動
- 4. 將嵌套列表字符串轉換爲列表
- 5. 將單個字符串轉換爲嵌套列表陣列
- 6. netlogo將字符串轉換爲嵌套列表中的數字
- 7. 循環遍歷嵌套列表 - 從字符串轉換爲浮動
- 8. 將嵌套列表轉換爲查詢字符串格式?
- 9. 將字符串轉換爲浮動logstash
- 10. 將列表轉換爲嵌套字典
- 11. 列表的列表將字符串轉換成浮動
- 12. 如何將數字的嵌套列表轉換爲字符串列表?
- 13. 將字符串序列轉換爲python中的浮點列表
- 14. 將任意嵌套的文字列表轉換爲字符串表示
- 15. 字符串浮動轉換?
- 16. 一個字符串轉換爲一個嵌套TCL列表
- 17. 將字符串轉換爲字列表?
- 18. 將字符串列表轉換爲字符串列表
- 19. 迅速字符串轉換爲浮動
- 20. 不能字符串轉換爲浮動
- 21. 將字符串轉換爲浮點數?
- 22. VBS將字符串轉換爲浮點
- 23. 將字符串轉換爲浮點數
- 24. 將字符串轉換爲浮點數
- 25. Python - 將列表的字符串值轉換爲浮點值
- 26. 將列表內的字符串轉換爲浮點數
- 27. 將字符串轉換爲列表
- 28. 將列表轉換爲字符串
- 29. 將Enumerable.Range轉換爲字符串列表
- 30. 將字符串轉換爲列表
確定。你有什麼'嘗試'? (*提示*) – mgilson 2013-02-14 22:52:59