除了==
之外,您能否以任何其他方式比较Python中的字符串?
Java中有.equals
这样的东西吗?
答案 0 :(得分:3)
有两种方法可以做到这一点。第一个是使用operator
模块,它包含所有数学运算符的函数:
>>> from operator import eq
>>> x = "a"
>>> y = "a"
>>> eq(x, y)
True
>>> y = "b"
>>> eq(x, y)
False
>>>
另一种方法是使用字符串的__eq__
方法,当您使用==
时调用该方法:
>>> x = "a"
>>> y = "a"
>>> x.__eq__(y)
True
>>> y = "b"
>>> x.__eq__(y)
False
>>>
答案 1 :(得分:2)
你可以这样做:
import operator
a = "string1"
b = "string2"
print operator.eq(a, b)
这与Java类似,因为您没有使用显式运算符。
然而,在Java中,您在String
类(即myString.equals(otherString)
)上使用方法调用,但在Python eq
中只是一个从名为{的模块导入的函数{1}}(请参阅文档中的operator.eq
)。
答案 2 :(得分:2)
根据the docs:
eq(a, b)
相当于a == b
所以==
就像Java中的.equals
一样(除了左边是null
时才有效。)
Java ==
运算符的等价物是is
运算符,如:
if a is b
答案 3 :(得分:0)
除了'=='之外还需要使用除了'=='之外的其他字符串是不可变的并且默认情况下是memoized吗?
正如其他答案中所指出的,您可以使用'is'作为参考(id)比较。