我有一个非常基本的问题,但我没有在互联网上找到任何“漂亮”的解决方案。我只想从有字符串和括号的行中提取数字。
例如,我有一个输出文本文件如下:
test: [1, 50, 200]
我想提取值 1、50 和 200,以便制作这些数字的 numpy 数组。
这个问题已经通过一些拆分和剥离解决了,但我觉得这个解决方案不是很优雅。
最佳答案
你可以使用一个非常简单的正则表达式:
import numpy as np
import re
nums = map(int, re.findall(r'\d+', 'test: [1, 50, 200]'))
print(np.array([n for n in nums]))
# [ 1 50 200]
另一种选择是使用正则表达式提取整个列表,然后使用 literal_eval
:
import numpy as np
import re
from ast import literal_eval
li = re.search(r'(\[.*\])', 'test: [1, 50, 200]').group()
print(np.array(literal_eval(li)))
# [ 1 50 200]
关于python - 有没有办法从文本文件中带括号的数字中提取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55345319/