gpt4 book ai didi

Python - 功能类似于 dict.get 但返回默认键值而不是默认值?

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:01 25 4
gpt4 key购买 nike

假设

a = {1:2, 3:4, 5:6}

是否有一个内置函数(可能像 a.get2(7,5)) 会返回 a[7]a[5 ] 如果 a[7] 不存在?

这样的函数可以很容易地定义为 a.get(val, a.get(def_key)) 但如果存在内置解决方案,则更喜欢。

最佳答案

你可以继承dict:

class MyDict(dict):
def get2(self,*keys):
for k in keys:
if k in self:
return self.get(k)
return None # if not found

a = {1:2, 3:4, 5:6}
b = MyDict(a)
print(b.get2(2,10,5))

位置参数允许将行为扩展到 n 个键。一般情况下不能使用 get 来知道键是否在字典中,因为某些值可能None 因此 in 测试。

避免使用哨兵对象

进行双重字典测试
class MyDict(dict):
__notfound = object()
def get2(self,*keys):
for k in keys:
x = self.get(k,self.__notfound )
if x is not self.__notfound :
return x
return None # if not found

关于Python - 功能类似于 dict.get 但返回默认键值而不是默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49425941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com