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