我正在做一个程序来过滤我的数据使用一些参数和逻辑运算
我有很多教室的数据都有自己的特点,所以每个教室都会有不同的过滤器
if classrooms == 1:
if data[A] > data[B] & data[C] != data [D]:
print("matched")
elif classrooms == 2:
if data[A] < data[B] & data[C] == data [D]:
print("matched")
elif classrooms == 3:
if data[B] < data[D] & data[A] == data [C]:
print("matched")
...
...
elif classrooms == 5000:
if data[R] < data[A] & data[W] == data [H]:
print("matched")
因为操作符是相似的,所以有什么方法可以将我的逻辑过滤器从我存储的文件读取到python程序中吗
"(A<B)&(C!=D)"
"(A>B)&(C==D)"
..
..
"(R<A)&(W==H)"
因此,我不必用python为每个教室编写所有逻辑过滤器,这会在python中产生大量的行。我只是从存储的文本数据中读取,我的python程序将解释
"(A<B)&(C!=D)"
加入这个项目
if data[A] > data[B] & data[C] != data [D]:
您可以使用regular expression解析文件中的过滤器,然后从操作符模块构造一个函数链来执行过滤器
这个表达式
匹配筛选器的结构
它们可以这样匹配:
可以使用在
(?P<name>)
子表达式中指定的名称访问筛选器的部分使用字典将运算符映射到operator模块中的函数
可以构建表达式并对其求值
如何从操作数派生
a, b, c, d
是您需要解决的问题上面的正则表达式假设操作数是单个大写字符,运算符是一个或多个非大写字符。这可以变得更精确,例如,您可以使用regex交替运算符
|
来生成只匹配所使用运算符的表达式而不是过于笼统
相关问题 更多 >
编程相关推荐