gpt4 book ai didi

python - 向现有字典添加新别名?

转载 作者:行者123 更新时间:2023-12-04 16:07:24 25 4
gpt4 key购买 nike

所以我试图添加一个新的“名称”作为字典中现有键的别名。
例如:

dic = {"duck": "yellow"}

userInput = raw_input("Type the *name* and *newname* (alias) here:")

#Somecode that allows me to input newname as an alias to "duck"
用户输入两个词:name 引用“duck”,newname 一个新键,它应该指向现有键的值。即别名。
因此,当我更改 "duck" 的值时 "newname"也应该改变,反之亦然。
我已经尝试了很多东西,但找不到一个好的方法来做到这一点。

最佳答案

这没有内置功能,但很容易在 dict 之上构建。类型:

class AliasDict(dict):
def __init__(self, *args, **kwargs):
dict.__init__(self, *args, **kwargs)
self.aliases = {}

def __getitem__(self, key):
return dict.__getitem__(self, self.aliases.get(key, key))

def __setitem__(self, key, value):
return dict.__setitem__(self, self.aliases.get(key, key), value)

def add_alias(self, key, alias):
self.aliases[alias] = key


dic = AliasDict({"duck": "yellow"})
dic.add_alias("duck", "monkey")
print(dic["monkey"]) # prints "yellow"
dic["monkey"] = "ultraviolet"
print(dic["duck"]) # prints "ultraviolet"
aliases.get(key, key)返回 key如果没有别名,则不变。

处理键和别名的删除留给读者作为练习。

关于python - 向现有字典添加新别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46405939/

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