我从字符串中提取了一个数字:
weight = [int(s) for s in fish.split() if s.isdigit()]
,结果为list
:[7088]
我尝试通过执行以下操作将该列表转换为字符串:
weight = str(weight)
print("weight:", weight)
但打印输出仍为:
weight: [7088]
所以我尝试只返回一个整数:
weight = int(weight)
但得到了:
ValueError: invalid literal for int() with base 10: '[7088]'
所以我尝试将初始列表编号转换为浮点数:
weight = float(weight)
但得到了:
ValueError: could not convert string to float: '[7088]'
最终这会导致我的代码失败,因为我的RegEx并未将其识别为数字。 (RegEx:regnumber = re.compile(r"(\d),(\d) | (\d)")
)
是否有一种简单的方法可以将列表中的初始返回数字转换为数字/字符串/整数,而不是我的RegEx实际可以识别的数字?
答案 0 :(得分:2)
如果列表中只有一个数字,您可以这样做:
weight = str(weight[0])
或根据您的要求使用float(),int()等
答案 1 :(得分:1)
显然不是要把它变成一个int来开始:
weight = [s for s in fish.split() if s.isdigit()]
但如果你必须:
weight = map(str, weight)