【发布时间】:2017-03-11 12:13:53
【问题描述】:
我应该如何只从
中提取数字a = ['1 2 3', '4 5 6', 'invalid']
我试过了:
mynewlist = [s for s in a if s.isdigit()]
print mynewlist
和
for strn in a:
values = map(float, strn.split())
print values
两个都失败了,因为数字之间有空格。
注意:我试图实现输出为:
[1, 2, 3, 4, 5, 6]
【问题讨论】:
-
数字是否仅由空格分隔,或者您认为可能还有其他内容,例如逗号或其他内容?
-
你用
values = map(float, strn.split())得到了什么? -
@Dunno:是的,它们用空格而不是逗号分隔
-
@levi 我得到 ValueError: could not convert string to float: invalid
-
在这种情况下并不重要,因为你的代码为什么不工作是显而易见的,但你应该养成包含完整堆栈跟踪和代码如何失败的详细描述的习惯你的问题。当您在将来询问有关更复杂问题的 SO 问题时,说您的代码“失败”可能会导致一个封闭的问题,因为它不够详细。
标签: python string python-2.x