【发布时间】:2020-10-10 12:13:17
【问题描述】:
我有以下输入 inp = [{1:100}, {3:200}, {8:300}],我想将其转换为字典。我可以的
dct = dict()
for a in inp:
dct.update(a)
或者我可以做
_ = [dct.update(a) for a in inp]
但我想做这样的事情:
map(dct.update, inp)
【问题讨论】:
-
map操作是转换结果并检索它,所以没有。就像你的列表理解一样,它是检索结果而不是使用有状态的方法 -
你可以但你不应该。这同样适用于您的列表理解,您不应该使用它来调用
dict.update。map和理解构造都是函数式编程构造,用于使用纯函数对任意迭代表示映射/过滤操作。你的函数不应该有副作用,它们绝对不应该只用于副作用 -
理想情况下,您也不应该为此任务进行列表理解。您的第一种方法似乎很简单,而且可能是最快的。
标签: python