如何从字符串python中提取特定变量?

如何从字符串python中提取特定变量?,python,Python,我有一个类似“a:22.0/4.03 B:15.05/3.0 C:120.15/12.4”(带空格)的字符串 我想提取这些数字,并将它们存储为具有特定名称的介绍变量。例如,我想要变量A1=22.0,A2=4.03,B1=15.05,B2=3.0,C1=120.15,C2=12.4 字符串中的变量可能不是按此顺序排列的,但始终会有以下组按此顺序排列:(变量名称):(value1)/(value2) 任何帮助或想法都将不胜感激。谢谢大家! 有一百万种方法可以做到这一点。正则表达式非常有用,可以帮助

我有一个类似
“a:22.0/4.03 B:15.05/3.0 C:120.15/12.4”
(带空格)的字符串


我想提取这些数字,并将它们存储为具有特定名称的介绍变量。例如,我想要变量
A1=22.0
A2=4.03
B1=15.05
B2=3.0
C1=120.15
C2=12.4

字符串中的变量可能不是按此顺序排列的,但始终会有以下组按此顺序排列:
(变量名称):(value1)/(value2)


任何帮助或想法都将不胜感激。谢谢大家!

有一百万种方法可以做到这一点。正则表达式非常有用,可以帮助处理缺少值和其他边缘情况。假设您的数据从未丢失值或任何其他格式,那么简单的字符串替换和拆分就可以完成这项工作

您会发现很难根据字符串(A1、A2等)中的值命名变量。最好使用字典来存储这种类型的数据

这其中复杂的部分是字典的构造,在本例中,字典是从0到拆分列表中项目的长度,按3计算,并使用这些数字创建字典的键:值对

原始字符串

x = "A:22.0 /4.03 B:15.05 /3.0, C:120.15 /12.4"
替换带空格的特殊字符,并在空格上拆分(将删除额外的空格)

给你

['A', '22.0', '4.03', 'B', '15.05', '3.0,', 'C', '120.15', '12.4']
从数据构造一个字典

output = {b[x]:[b[x+1],b[x+2]] for x in range(0,len(b),3)}
输出:

{'A': ['22.0', '4.03'], 'B': ['15.05', '3.0,'], 'C': ['120.15', '12.4']}
然后按如下方式访问数据:

output['A'][0]
22.0
output['A'][1]
4.03

有一百万种方法可以做到这一点。正则表达式非常有用,可以帮助处理缺少值和其他边缘情况。假设您的数据从未丢失值或任何其他格式,那么简单的字符串替换和拆分就可以完成这项工作

您会发现很难根据字符串(A1、A2等)中的值命名变量。最好使用字典来存储这种类型的数据

这其中复杂的部分是字典的构造,在本例中,字典是从0到拆分列表中项目的长度,按3计算,并使用这些数字创建字典的键:值对

原始字符串

x = "A:22.0 /4.03 B:15.05 /3.0, C:120.15 /12.4"
替换带空格的特殊字符,并在空格上拆分(将删除额外的空格)

给你

['A', '22.0', '4.03', 'B', '15.05', '3.0,', 'C', '120.15', '12.4']
从数据构造一个字典

output = {b[x]:[b[x+1],b[x+2]] for x in range(0,len(b),3)}
输出:

{'A': ['22.0', '4.03'], 'B': ['15.05', '3.0,'], 'C': ['120.15', '12.4']}
然后按如下方式访问数据:

output['A'][0]
22.0
output['A'][1]
4.03

要提取它们,应使用正则表达式:以下是文档:

但我建议你看看字典。它将提供一个键和值的控制,它看起来你需要什么。以下是一个例子:

variableName = {
        "A1":22.0,
        "A2":4.03
    }

下面是一个关于如何使用此函数的好教程的链接:

要提取它们,您应该使用正则表达式:以下是文档:

但我建议你看看字典。它将提供一个键和值的控制,它看起来你需要什么。以下是一个例子:

variableName = {
        "A1":22.0,
        "A2":4.03
    }

下面是一个关于如何使用该语法的好教程的链接:

定义语法,然后编写解析器,然后使用该解析器解析字符串-简单!(只是开玩笑,这是一项相当艰巨的任务:尝试创建一个正则表达式来分别获取每个组,然后尝试解析每个组)好吧,我只是想给你一个提示让你开始。解析字符串(拆分或正则表达式)并将键值对存储到字典中。您从未指定有关潜在边缘情况的信息。如果你在字符串中看到两个A怎么办?把它们存储在字典里怎么样,比如
nums={'A':[22,4.03],'B':[15.05,3],'C':[120.15.12.4]}
?这样的结果对你有用吗?然后您可以访问诸如
nums['B'][1]
之类的值。定义语法,然后编写解析器,然后使用该解析器解析字符串-简单!(只是开玩笑,这是一项相当艰巨的任务:尝试创建一个正则表达式来分别获取每个组,然后尝试解析每个组)好吧,我只是想给你一个提示让你开始。解析字符串(拆分或正则表达式)并将键值对存储到字典中。您从未指定有关潜在边缘情况的信息。如果你在字符串中看到两个A怎么办?把它们存储在字典里怎么样,比如
nums={'A':[22,4.03],'B':[15.05,3],'C':[120.15.12.4]}
?这样的结果对你有用吗?然后您可以访问诸如
nums['B'][1]
之类的值。我认为这是最简单的方法,谢谢!我会用的。我想这是最简单的方法,谢谢!我会用的。字典的想法应该对我的工作有帮助,谢谢!字典的想法应该对我的工作有帮助,谢谢!