python - 从字符串中提取要列出的元素时遇到问题

标签 python string

我正在使用 python 并面临从具有由数字组成的元组的字符串中提取特定元素的问题。这里要注意的一件事是字符串中数字的元组不是固定的,可以或多或少。字符串的格式将与下面提到的相同:

'string = [(100, 1), (2500, 2), (5000, 3), (10000, 3).....]'

期望的输出:

[100,2500,5000,10000.....]

我尝试了什么:

到目前为止,我尝试拆分上面的字符串以获得以下输出

['string', '=', '(100', '1)', '(2500', '2)', '(5000', '3)', '(10000, '3)']

然后我打算去掉不需要的字符,比如 (,' 来得到我想要的数字,但是这个方法必须对每个元组进行硬编码,并且字符串中元组的长度不固定.

最佳答案

您可以使用 = 拆分文本以查找元组列表,然后使用 ast.literaleval() 评估您的列表:

>>> next(zip(*literal_eval(s.split('=')[-1].strip())))
(100, 2500, 5000, 10000)

请注意,由于在 python 2.X 中 zip 返回一个列表,您可以使用索引来获取第一项:

zip(*literal_eval(s.split('=')[-1].strip()))[0]
(100, 2500, 5000, 10000)

关于python - 从字符串中提取要列出的元素时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34017253/

相关文章:

python - 将 python 操作保留为二进制

python - 如何创建不调用任何函数的轨迹栏? OpenCV 3.1 与 Python 2.7

php - 如何使用 php 链接字符串中的 url?

java - Java如何高效管理内存

JavaScript 正则表达式 : Testing string for intelligent query

r - 使用grepl提取R中的子字符串

python - 为什么我需要提供一个空列表来使用 sum() 合并列表?

python - 正则表达式仅提取单词

python - 如何从 python 中的主脚本退出多处理池进程中的 while 循环

string - 为什么golang bytes.Buffer会以这种方式运行?