如何为内部字典键创建一个新列表或集合对象,以便不重复更新同一个对象?

How to create a new list or set object for an inner dictionary key so that the same object is not repeatedly being updated?

我正在尝试创建一个内部字典,其值存储在列表或集合对象中(在此示例中使用集合)。

t = [('Jobs', set()), ('Titles', set())]
inn_d = lambda: dict(t)

并创建默认字典并将 inn_d 传递给它。

d = defaultdict(inn_d)

d 和外键创建条目时,每个内键的两个值都会更新。

d['A']['Jobs'].add('Cook')
d['B']['Titles'].add('President')
d
defaultdict(<function <lambda> at 0x0000016691157DC0>, {'A': {'Jobs': {'Cook'}, 'Titles': {'President'}}, 'B': {'Jobs': {'Cook'}, 'Titles': {'President'}}})

什么时候应该

defaultdict(<function <lambda> at 0x0000016691157DC0>, {'A': {'Jobs': {'Cook'}, 'Titles': set()}, 'B': {'Jobs': set(), 'Titles': {'President'}}})

我知道正在调用 JobsTitles 的同一个集合对象 - 我不确定在创建内部字典时如何创建新的集合对象。

感谢您的帮助。

像这样每次创建一个新的:

def inn_d():
    return {'Jobs': set(), 'Titles': set()}

顺便说一句,named lambdas are bad practice