a = types.SimpleNamespace()
b = dict()
[a.__setattr__(key, value) for key, value in b]
现在,我想使用map
:list(map(a.setattr, b.items()))
,但是b.items()
的项目是一个元组,而不是键和值。我知道Python具有the unpack syntax,所以我很好奇是否有任何函数也可以解包序列,以便可以在map
中使用它。
答案 0 :(得分:0)
您可以使用itertools.starmap
:
In [46]: list(itertools.starmap(a.__setattr__, {'a': '1', 'b': '2'}.items()))
Out[46]: [None, None]
In [47]: a
Out[47]: namespace(a='1', b='2')
尽管我不认为列表理解或list(map
比这里的简单循环更具可读性。
答案 1 :(得分:0)
您可以使用itertools.starmap
将键值对的序列映射到a.setattr
:
list(starmap(a.__setattr__, b.items()))