Skip to main content
 首页 » 编程设计

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

2025年05月04日26zhujiabin

我正在使用 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)