我敢肯定,这将变成是一个愚蠢的问题...我试图像s = 'P1=12,P2=34,P3=56,P4=78'
字符串分解成一堆单个变量:蟒蛇 - 突破串入变量
P1 = 12
P2 = 34
P3 = 56
P4 = 78
s.split(',')
给我一个清单['P1=12','P2=34','P3=56','P4=78']
,这是一个开始,我想。有任何想法吗?
我敢肯定,这将变成是一个愚蠢的问题...我试图像s = 'P1=12,P2=34,P3=56,P4=78'
字符串分解成一堆单个变量:蟒蛇 - 突破串入变量
P1 = 12
P2 = 34
P3 = 56
P4 = 78
s.split(',')
给我一个清单['P1=12','P2=34','P3=56','P4=78']
,这是一个开始,我想。有任何想法吗?
我会像这样的东西去:
d = {}
for assignment in s.split(","):
name, value = assignment.split("=")
d[name.strip()] = float(value)
这会给你一本字典的名称映射到值,这比尝试动态地创建变量最有可能更好。如果你真的想做后者,你也可以做
exec s.replace(",", "\n")
但是,这将是非常可怕的。
谢谢你,字典肯定会完成这项工作。是否没有简单的方法将字典分成单独的浮点数? – 2012-07-18 11:03:10
@poorsod:变量名是否被修正?它是* alyways *'P1','P2','P3'。 'P4'? – 2012-07-18 11:07:31
我希望能够重复使用不同输出的代码。例如,相同的仪器在不同的命令下可能会吐出一个字符串,如'CRYO = 0.1,1K = 0.2,STILL = 0.3,MC = 0.4'。我希望能够像这样发送各种字符串到相同的函数,这将会吐出适当命名的变量。 – 2012-07-18 11:16:41
只是双分:
string = 'P1=12,P2=34,P3=56,P4=78'
d = dict(s.split('=') for s in string.split(','))
# d == {'P2': '34', 'P3': '56', 'P1': '12', 'P4': '78'}
我已经把这些变成一个字典,因为它可能是取决于你使用的数据查找什么更加便利。
如果你想要的值作为一个整数,你可以这样做:
d = dict((k, int(v)) for k, v in (s.split('=') for s in string.split(',')))
试试这个:
s = 'A=1,B=2,C=3'
d = dict([i.split('=') for i in s.split(',')])
o = '%s = %s' % (', '.join(d.keys()), ', '.join(d.values()))
exec(o)
print A, B, C
# 1, 2, 3
我认为使用'exec'的* my *解决方案太可怕了...... – 2012-07-18 11:09:54
恕我直言,如果你不知道它的执行的价值,那么它恐怕是非常可怕的,在这里我们非常肯定它的解包。 :) – Marconi 2012-07-18 11:10:54
你有一点,鉴于这些信息来自某种工具,“exec”可能并不像我在这种情况下那么糟糕。 – 2012-07-18 11:16:35
你想将这些转化为实际的可执行Python语句? – Levon 2012-07-18 10:55:17
字符串将被科学仪器吐出 - 在这种情况下,四个Ps是四个压力传感器上的读数。我希望能够将读数存储在可以经常更新的变量中,并由用户查询。 – 2012-07-18 10:56:52