【发布时间】:2022-01-17 07:12:42
【问题描述】:
我有一个包含数千行的大文本文件,但包含相同想法的简短示例是:
vapor dust -2C pb
x14 71 hello! 42.42
100,000 lover baby: -2
整数、字母数字和浮点数混合在一起。
尝试 SOLN。 我这样做是为了创建一个由字符串组成的单个列表,但是我无法根据每个单元格的数字或字母数字来隔离每个单元格
with open ('file.txt','r') as f:
data = f.read().split()
#dirty = [ x for x in data if x.isnumeric()]
print(data)
#dirty 行失败。
我很幸运地使用以下代码构建了一个包含几乎所有必需值的列表:
with open ('benzene_SDS.txt','r') as f:
for word in f:
data= word.split()
clean = [ x for x in data if x.isnumeric()]
res = list(set(data).difference(clean))
print(clean)
但它不返回单个列表,它是一个列表列表,其中大部分是空白 []。
给出了一个提示,使用“try”控制语句对解决问题很有用,但我不知道如何使用它。
任何帮助将不胜感激!谢谢。
【问题讨论】:
-
根据您自己的示例数据,您希望输出是什么? IE。应该包括 14 吗? 100,000 怎么样?
-
@Grismar 14 不包括在内,但 100 将是,从分配“函数应该识别像“10823”这样的数字,它们后面有一个逗号或其他字符# REQ2:带连字符的数字 (或其他非数字字符),如 x14 或 727-8989 应跳过。"
-
嗨,如果更简单的话,我们可以假设我们只需要提供的示例中的真整数和浮点数。我对合并 try 语句感到很困惑。对不起,如果我的知识不好!它对我来说仍然是新的
-
您可能应该在您的问题中添加一个预期输出的示例,就像我问的那样。例如,对于许多区域设置,
'100,000'将被视为编写100000的有效方式,而对于其他区域设置,它可能被视为100.000。听起来您只想要完全符合当地区域设置的数值,但值可以用空格和其他分隔符(如逗号)分隔 - 但目前尚不清楚什么是有效的分隔符。'123; 45-50, 60!'怎么样? -
@Grismarit 提示说明该函数应该能够识别像“2019”这样的数字,这些数字后面有逗号或其他字符。并且应该跳过其中包含非数字字符的数字。因此,对于您的示例,该函数将返回 [123.0,60.0]
标签: python string function split control-statements