如何比较基于自定义优先级的变量在python?



我有几个字符串,例如'A', 'B', 'C', 'D'.

  1. 我需要设置这些字符串的级别,如

'B' > 'A' > 'D' > 'C'

  1. 两个变量的值将作为其中之一。所以,当我比较这两个变量时,我应该得到布尔值True或False,就像我们比较两个具有数值的变量时得到的那样。例如,假设var1 = 'D' and var2 = 'B'。所以,如果我们比较:
if var1 > var2:
some code
else:
other code

则应该转到else作为'B'>"D"。

希望,我已经解释了我想要的。请建议。

如果不创建自己的自定义类,就不能直接使用比较操作符。但是,您可以使用字符的值创建一个字典。例如:

values = {"B":4, "A":3, "D":2, "C":1}
if values[var1] > values[var2]:
some code
else:
other code

最好的方法可能是定义一个字典或每个值的优先级,并编写一个方法来比较值:

def compare(left, right):
values = { "B": 3, "A": 2, "D", 1, "C", 0 }

return values[left] > values[right]
var1 = "B"
var2 = "D"
if compare(var1, var2):
pass
else
pass

您将无法使用>操作符,因为python中不允许对现有类型进行操作符重载。如果你创建一个自定义类,你将能够将compare逻辑移动到类的__gt__,__lt__,__eq__等方法中。

最新更新