我有几个字符串,例如'A', 'B', 'C', 'D'
.
- 我需要设置这些字符串的级别,如
'B' > 'A' > 'D' > 'C'
- 两个变量的值将作为其中之一。所以,当我比较这两个变量时,我应该得到布尔值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__
等方法中。