有什么功能可以解压缩Python中的任何序列吗?

时间:2018-10-11 07:05:10

标签: python

a = types.SimpleNamespace()
b = dict()
[a.__setattr__(key, value) for key, value in b]

现在,我想使用maplist(map(a.setattr, b.items())),但是b.items()的项目是一个元组,而不是键和值。我知道Python具有the unpack syntax,所以我很好奇是否有任何函数也可以解包序列,以便可以在map中使用它。

2 个答案:

答案 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()))