通过编写 + 运算符按值添加字典
Adding dictionaries by value by writing + operator
我想为字典编写 +
运算符。
我知道 like here 之前有人问过类似的问题,但我想改为为字典编写 +
运算符。
我知道可以在 Python 中的自定义 class 中重载运算符。但是,我没有找到如何在内置 class 中重载运算符(如果确实可行的话)。此外,由于 +
运算符没有为 Python 中的字典定义,我想知道这是否可能?
我认为这个问题以前没有在 SO 上被问过,因为我找不到类似的问题。也许我只是没有找到合适的术语来搜索它。 Another link that might be useful for that question.
我猜你想做的是对字典实现添加方法——你可能想使用你自己的逻辑,我在这里使用更新方法来添加。您将必须继承并重载 add 方法才能实现这一点。以下是操作方法。
class dicti(dict):
def __add__(self, obj):
temp = {}
temp.update(self)
temp.update(obj)
return temp
a = dicti({'a':1,'b':2})
b = dicti({'c':2})
c = a+b
print(a) #outputs -> {'a': 1, 'b': 2}
print(b) #outputs -> {'c':2}
print(c) #outputs -> {'a': 1, 'b': 2, 'c': 2}
我想为字典编写 +
运算符。
我知道 like here 之前有人问过类似的问题,但我想改为为字典编写 +
运算符。
我知道可以在 Python 中的自定义 class 中重载运算符。但是,我没有找到如何在内置 class 中重载运算符(如果确实可行的话)。此外,由于 +
运算符没有为 Python 中的字典定义,我想知道这是否可能?
我认为这个问题以前没有在 SO 上被问过,因为我找不到类似的问题。也许我只是没有找到合适的术语来搜索它。 Another link that might be useful for that question.
我猜你想做的是对字典实现添加方法——你可能想使用你自己的逻辑,我在这里使用更新方法来添加。您将必须继承并重载 add 方法才能实现这一点。以下是操作方法。
class dicti(dict):
def __add__(self, obj):
temp = {}
temp.update(self)
temp.update(obj)
return temp
a = dicti({'a':1,'b':2})
b = dicti({'c':2})
c = a+b
print(a) #outputs -> {'a': 1, 'b': 2}
print(b) #outputs -> {'c':2}
print(c) #outputs -> {'a': 1, 'b': 2, 'c': 2}