如何在python中删除冒号之前的所有字符

时间:2014-03-02 13:34:07

标签: python python-2.7

{'Smax38':0.0,'Smax39':0.0,'Geto':2.048,'Chi5ch':0.0,'Smax35':5.048,'Smax36':6.347,'Smax37':0.0,'Smax30': 0.0}

我想在上面提到的每个列表项中删除冒号前的所有字符。 必须将输出写入txt文件,其中只有逗号或空格分隔的值,如下所述

0.0,0.0,2.048,0.0,5.048,6.347,0.0,0

1 个答案:

答案 0 :(得分:4)

看起来您有dict,请尝试:

d = {'Smax38': 0.0, 'Smax39': 0.0, 'Geto': 2.048, 'Chi5ch': 0.0, 'Smax35': 5.048, 'Smax36': 6.347, 'Smax37': 0.0, 'Smax30': 0.0}
res = ','.join(map(str, d.values()))
# 0.0,0.0,2.048,0.0,5.048,6.347,0.0,0.0

请注意,值的顺序不一定按照您声明字典的顺序,因为字典是任意排序的。因此,您可能希望考虑根据密钥强制进行一些排序......

请注意,如果它真的是一个字符串,那么您可以使用ast.parse解析它:

import ast

s = "{'Smax38': 0.0, 'Smax39': 0.0, 'Geto': 2.048, 'Chi5ch': 0.0, 'Smax35': 5.048, 'Smax36': 6.347, 'Smax37': 0.0, 'Smax30': 0.0}"
p = ast.parse(s)
res =','.join(str(node.n) for node in p.body[0].value.values)
# 0.0,0.0,2.048,0.0,5.048,6.347,0.0,0.0