0

当要求一个符号时,.free_symbols我在花括号中得到一些东西(这是 a set)。

如果我将此集合用作lambdifysympy 的参数列表,它似乎已转换为list. 这在文档中有所暗示,但我建议在进行此转换时在此处给出警告。这样做的一个很好的原因是符号的顺序可能会在此转换中改变。

就我而言 _chiSquare.free_symbols,给出{c_95_0, c_95_1}list({'c_95_0', 'c_95_1'})给出 ['c_95_1', 'c_95_0']

我喜欢使用自动生成数值函数,.free_symbols但如果变量的顺序在没有通知的情况下更改,这很难使用。

我的问题是一个人应该如何处理,free_symbols并且lambdify以一种保持参数顺序固定的方式。

4

1 回答 1

0

我认为最好明确地跟踪符号而不是使用free_symbols.

如果您必须free_symbols从那时起工作,您可以对它们进行排序以获得一致的顺序:

In [3]: sorted((x*y).free_symbols, key=lambda s: s.name)
Out[3]: [x, y]
于 2020-07-08T17:49:50.170 回答