Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pyparsing:无法从ParseResults对象获取结果 >>从pyparsing导入单词、alphanums、一个或多个、可选、抑制 >>>var=单词(字母) >>>reg=一个或多个(变量(“预测因子”)+可选(抑制(+'))+“~”+一个或多个(变量(“协变量”)+可选(抑制(+')) >>>字符串='y1~f1+f2+f3' >>>reg.parseString(字符串) (['y1','~','f1','f2','f3'],{'predictors':['y1'],'covariates':['f1','f2','f3']})_Python_Parsing_Pyparsing - Fatal编程技术网

Python pyparsing:无法从ParseResults对象获取结果 >>从pyparsing导入单词、alphanums、一个或多个、可选、抑制 >>>var=单词(字母) >>>reg=一个或多个(变量(“预测因子”)+可选(抑制(+'))+“~”+一个或多个(变量(“协变量”)+可选(抑制(+')) >>>字符串='y1~f1+f2+f3' >>>reg.parseString(字符串) (['y1','~','f1','f2','f3'],{'predictors':['y1'],'covariates':['f1','f2','f3']})

Python pyparsing:无法从ParseResults对象获取结果 >>从pyparsing导入单词、alphanums、一个或多个、可选、抑制 >>>var=单词(字母) >>>reg=一个或多个(变量(“预测因子”)+可选(抑制(+'))+“~”+一个或多个(变量(“协变量”)+可选(抑制(+')) >>>字符串='y1~f1+f2+f3' >>>reg.parseString(字符串) (['y1','~','f1','f2','f3'],{'predictors':['y1'],'covariates':['f1','f2','f3']}),python,parsing,pyparsing,Python,Parsing,Pyparsing,它能够正确地分析事物,但我无法获得预测值和协变量的所有值。它似乎只存储最后一个值: >results=reg.parseString(字符串) >>>结果.协变量 “f3” >>>结果[“协变量”] “f3” 我想获得预测值和协变量中的所有值作为列表。知道为什么会发生这种情况吗?默认情况下,结果名称使用与Python指令类似的逻辑:如果为同一个键分配了多个值,则只保留最后分配的值 但是,此行为可以被重写,具体取决于解析器如何定义结果名称 如果使用完整的expr.setResultsName(“

它能够正确地分析事物,但我无法获得
预测值
协变量
的所有值。它似乎只存储最后一个值:

>results=reg.parseString(字符串)
>>>结果.协变量
“f3”
>>>结果[“协变量”]
“f3”

我想获得
预测值
协变量
中的所有值作为列表。知道为什么会发生这种情况吗?

默认情况下,结果名称使用与Python指令类似的逻辑:如果为同一个键分配了多个值,则只保留最后分配的值

但是,此行为可以被重写,具体取决于解析器如何定义结果名称

如果使用完整的
expr.setResultsName(“XYZ”)
表单,请添加
listalMatches=True
参数。这告诉pyparsing保留所有解析值的列表,并将它们作为列表返回

如果使用快捷的
expr(“XYZ”)
表单,请在名称的末尾添加一个
'*'
expr(“XYZ*”)
。这相当于将
listalmatches
设置为True


对于使用缩写形式的
setResultsName
expr(“name*”)
vs
expr.setResultsName(“name”,listAllMatches=True)的情况,在
setResultsName
中有尾随的
“*”
。如果您喜欢调用
setResultsName
,则不要使用
“*”
符号,而是传递
listAllMatches
参数。

重新打开-建议的副本在包含有助于回答此问题的信息的同时,隐藏了实际答案