2024-04-20 06:42:00 发布
网友
我有一个包含数字和单词串的列表 我只想把那些数字字符串转换成浮点数
aList= [ ["hi", "1.33"], ["bye", " 1.555"] ]
首先,您需要一个函数来执行“如果可能,将字符串转换为浮点,否则将其保留为字符串”:
def floatify(s): try: return float(s) except ValueError: return s
现在,您可以对每个值调用它,或者生成一个新的列表,或者就地修改旧的列表。在
因为你有一个嵌套的列表,这意味着一个嵌套的迭代。首先,您可能需要通过两个步骤显式地执行此操作:
当然,只需将floatify_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看起来像伪装得很糟糕的Haskell:
def floatify_list_of_lists(nested_list): return map(partial(map, floatify), nested_list)
首先,您需要一个函数来执行“如果可能,将字符串转换为浮点,否则将其保留为字符串”:
现在,您可以对每个值调用它,或者生成一个新的列表,或者就地修改旧的列表。在
因为你有一个嵌套的列表,这意味着一个嵌套的迭代。首先,您可能需要通过两个步骤显式地执行此操作:
^{pr2}$当然,只需将
floatify_list
设为一个局部函数,就可以将其组合成一个函数:也可以通过替换内部表达式来代替函数调用来实现。如果你自己不知道怎么做,我建议你不要这样做,因为你不太可能理解(复杂的嵌套列表理解对专家来说很难理解),但是如果你必须:
或者,如果您希望您的Python看起来像伪装得很糟糕的Haskell:
相关问题 更多 >
编程相关推荐