Python中有“无限字典”吗?

2024-04-24 11:19:29 发布

您现在位置:Python中文网/ 问答频道 /正文

Python中是否有类似“无限字典”的东西?在

更确切地说,是不是有什么东西 -我可以像字典一样输入值, -但也可能是一个函数,它告诉我如何将键映射到值, -也可能是把一个键映射到(有限)一组键然后给出相应值的东西? 从另一个角度来说,我想要的是以下“东西”: 我以一种方式初始化它(给出值、函数等等),然后它只给每个键一个值(根据请求)。在


Tags: 函数字典方式角度将键
3条回答

你需要的是一个“函数”。在

现在,用一个不那么讽刺的话来说:我不知道你到底想达到什么目的,但这里有一个例子:

您需要一段以算术级数返回第n个元素的代码。您可以使用以下函数进行此操作:

def progression(first_element, ratio):
    def nth_element(n):
        return n*ratio + first_element
    return nth_element

my_progression = progression(2, 32)
print my_progression(17) # prints 546

例如,如果您需要一个保留状态的函数,则可以对其进行扩展。在

希望这有帮助

您需要使用特殊方法__getitem__(self,key)创建一个类,该方法返回该键的适当值。在

如果您想要现有键的正常行为,以及不存在的键的特殊行为,可以调用__missing__方法来处理缺少的键。在

class funny_dict(dict):
    def __missing__(self, key):
        return "funny" * key

d = funny_dict()
d[1] = "asdf"
d[3] = 3.14
for i in range(5):
    print(i, d[i])

print(d)

输出:

^{pr2}$

相关问题 更多 >