gpt4 book ai didi

Python将列表转换为具有键值的字典

转载 作者:太空宇宙 更新时间:2023-11-04 07:00:51 24 4
gpt4 key购买 nike

我通过 PySolr 从 SOLR 获得 json 响应,一切正常,只是 Facet 字段的格式不一致,下面是 facet 字段

LocalityId = [ "14008",1,"14293",4,]

现在我需要将上面的列表转换成键值对(字典),同样

LocalityId = {"14008":"1", "14293":"4"}

如何用 python 实现这个?

编辑:是的,我知道它不是标准列表格式,但我没有创建它,怪 solr

编辑:为什么-1,stackoverflow成了报复和随机爆发的地方!伙计们,告诉我哪里错了??

最佳答案

假设您的原始列表名为 fields :

dict(zip(fields[::2], map(str, fields[1::2])))

一步一步:来自原始列表 fields我们希望偶数索引处的项目是键,奇数索引处的项目是值。

我们将使用 Python 的扩展索引(实际上是引擎盖下的 slice 内置)来获取所有偶数和奇数索引项:

>>> list(range(10)[::2])
[0, 2, 4, 6, 8]
>>> list(range(10)[1::2])
[1, 3, 5, 7, 9]

偶数项是从索引 0 开始获得的(省略,因为它是默认值)直到最后一个元素(也省略),我们将使用 2 的步骤.对于奇数项目,我们做同样的事情,但从索引 1 开始。 .

如果我们 zip这两个列表一起我们得到一个列表 (key, value)我们可以将返回值传递给 dict constructor .

现在我们只需要使值str s 来匹配所需的输出,为此我们将使用 map :

>>> even_items = fields[::2]
>>> odd_items = fields[1::2]
>>> key_value_pairs = zip(even_items, odd_items)
>>> dict(key_value_pairs)
{'14008': 1, '14293': 4}

或者在一行中:

dict(zip(fields[::2], map(str, fields[1::2])))

关于Python将列表转换为具有键值的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28987480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com