2014-03-02 68 views
0

{'Smax38':0.0,'Smax39':0.0,'Geto':2.048,'Chi5ch':0.0,'Smax35':5.048,'Smax36':6.347' Smax37':0.0,'Smax30':0.0}如何删除python中冒号前的所有字符

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

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

+0

你确定这是一个'列表“而不是”字典“。你似乎把它称为“列表”。您应该查看[docs for dict](http://docs.python.org/3/tutorial/datastructures.html#dictionaries) – Guy

回答

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 
相关问题