1

除了 之外,你还能以任何其他方式比较 Python 中的字符串==吗?.equalsJava中有类似的东西吗?

4

4 回答 4

4

有两种方法可以做到这一点。第一种是使用该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
>>>
于 2013-11-13T22:19:21.353 回答
2

你可以这样做:

import operator
a = "string1"
b = "string2"
print operator.eq(a, b)

这与 Java 类似,因为您没有使用显式运算符。

但是,在 Java 中,您使用的是对String类(即myString.equals(otherString))的方法调用,但在 Pythoneq中,您只是从一个被调用的模块中导入的函数operator(参见operator.eq文档)。

于 2013-11-13T22:19:02.123 回答
2

根据文档

eq(a, b)相当于a == b

==就像.equals在 Java 中一样(除了它在左侧是 时有效)null

Java==运算符的等价物是is运算符,如下所示:

if a is b
于 2013-11-13T22:21:40.500 回答
0

使用'=='以外的其他需要是什么,因为python字符串默认是不可变的和记忆的?

正如其他答案中所指出的,您可以使用“is”进行参考(id)比较。

于 2015-01-14T05:38:27.740 回答