我想不出从这个文件中读取的方法,只有整数:
34
-1
2 48
+0
++2
+1
2.4
1000
-0
three
-1
函数应该返回:
[34, -1, 0, 1, -1]
如果一个数字有+或-是有效的。但是如果它有 ++ 或任何字母都没有。
如果它有一个空格(例如 2 48 )是无效的。
如果大于 999,则无效。
我只卡在这里:
my_list = []
with open('test.txt') as f:
lines = f.readlines()
for line in lines:
my_list.append(line.strip())
我试图将它变成一个字符串并使用 translate 来使用标点符号,但我不确定它是否会变得更复杂。
此外,我不确定是否使用正则表达式。我尝试了一个简单的正则表达式,但我没有使用它的经验。
请您参考如下方法:
您可以使用 int() 将字符串转换为整数。如果字符串不是整数,它将抛出 ValueError。所以试试这个:
my_list = []
with open('test.txt') as f:
for line in f:
try:
n = int(line)
if n > 999 or line.strip() == '-0':
#filtering numbers >999 and strings with '-0'
continue
my_list.append(n)
except ValueError:
pass
print(my_list)
输出:[34, -1, 0, 1, -1]
