是否有将dict转换为[k1,v1,k2,va]的更好方法?

Fal*_*per 2 python python-3.x

现在我正在使用以下方法,但我觉得有更好的方法:

data = { "foo": 5, "bar": 10}
l = []
for k in data:
  l.append(k)
  l.append(data[k])

print(l)
Run Code Online (Sandbox Code Playgroud)

我正在利用Postgres的参数化查询。所以我试图从数据字典构建数组。

虽然这确实给了我一个答案,但我一直认为这4条线可能会有点凝结

tim*_*geb 5

是的,将物品锁起来。

>>> from itertools import chain
>>> data = {"foo": 5, "bar": 10}
>>> list(chain.from_iterable(data.items()))
['foo', 5, 'bar', 10]
Run Code Online (Sandbox Code Playgroud)

  • 根据您对语法的喜好,`list(chain(*(d.items())))也可以工作。(不过,我喜欢`from_iterable`,可以告诉您是否可以看到我删除的答案:) (2认同)
  • chain.from_iterable应该更有效,因为* d.items()将构造所有要传递给vargs参数的元组,而from_iterable将仅对这些项目进行迭代。 (2认同)