python - 有没有办法从文本文件中带括号的数字中提取值?

标签 python split

我有一个非常基本的问题,但我没有在互联网上找到任何“漂亮”的解决方案。我只想从有字符串和括号的行中提取数字。
例如,我有一个输出文本文件如下:

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/

相关文章:

python - 在空格后拆分字符串

string - Bash:完全像 Readline 一样拆分字符串

python - Google App Engine 抛出此 InvalidURL ("nonnumeric port: ' %s'"% host[i+1 :]) exception when I try to deploy. 如何修复它?

python - `np.concatenate` 一个带有稀疏矩阵的 numpy 数组

python - 在 PyGame 中渲染大图像导致帧率低

linux - 如何通过 shell 拆分此文本文件?

python - 为时代换弦

python - load_model 是否加载优化器状态?

c - 如何使用 strtok 通过两个分隔符分隔特定字符串到数组

python - 在 pandas 中按向量分割数据框