如何将[相同] 非str foo添加到字典的所有 str 键中,以便
a = {'continent': ['America', 'Africa'], 'country': ['USA', 'Egypt']}
变为:
a = {foo(bar='continent', hello=world): ['America', 'Africa'], foo(bar='country', hello=world): ['USA', 'Egypt']}
答案 0 :(得分:2)
在这里,我使用字典理解来迭代dict a
中的键和值,并应用函数foo
定义的任何变换:
def foo(bar, hello):
return bar + hello # or whatever you want to do
a = {'continent': ['America', 'Africa'], 'country': ['USA', 'Egypt']}
b = {foo(bar=k, hello='world'): v for k,v in a.items()}
打印b
产生:
{'continentworld': ['America', 'Africa'], 'countryworld': ['USA', 'Egypt']}
您不必在Python中使用字符串作为字典键。字典键的唯一要求是它们是可清除对象
来自Python wiki:
要用作字典键,对象必须支持哈希函数(例如通过
__hash__
),相等比较(例如通过__eq__
或__cmp__
)