回答
首先,你需要一个功能一个具有“字符串转换为浮动如果可能的话,否则,把它作为一个字符串”:
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