相关疑难解决方法(0)

覆盖Python的'in'运算符?

如果我在Python中创建自己的类,我应该定义什么函数以允许使用'in'运算符,例如

class MyClass(object):
    ...

m = MyClass()

if 54 in m:
    ...
Run Code Online (Sandbox Code Playgroud)

python operator-overloading operators in-operator

177
推荐指数
3
解决办法
6万
查看次数

python中的'in'运算符功能

我需要除去在字符string1中存在的string2。在这里string1string2只有小写字符 az 在给定的条件下,string1每次的长度都会更大。

我正在使用in运营商:

def removeChars (string1, string2):
    for char in string2:
        if char in string1:
            string1 = string1.replace(char, '')
    return string1
Run Code Online (Sandbox Code Playgroud)

但我在 Stack Overflow 上读到一个答案,上面写着:

对于 list、tuple、set、frozenset、dict 或 collections.deque 等容器类型,表达式x in y等效于any(x is e or x == e for e in y)

这意味着in操作员for在幕后使用了一个循环。

所以我的问题是,在for我的代码循环中,我应该考虑使用嵌套for循环,因为in操作员for在后台使用循环吗?如果是,这个程序的时间复杂度是多少?

python time-complexity

4
推荐指数
1
解决办法
98
查看次数