【发布时间】:2021-07-03 09:35:06
【问题描述】:
假设我有一个如下所示的列表:
[[('name', 'n1')], [('value', 'v1')], [('name', 'n2')], [('value', 'v2')], [('name', 'n3')], [('value', 'v3')]]
我能够运行res = dict((str(x[0][1]), y[0][1]) for x, y in zip(new[::2], new[1::2])),其中res 等于
{'n1':'v1', 'n2':'v2', 'n3':'v3'},这正是我在这种情况下想要的。当名称和值交替出现时就是这种情况。
不过,我也有一些类似这样的列表:
[[('name', 'n1')], [('name', 'n2')], [('name', 'n3')], [('value', 'v1')], [('value', 'v2')], [('value', 'v3')]]
在这里,我有名称、名称、名称,然后是相应的值、值、值。在这种情况下,我希望得到与上面相同的 res 字典,但我的代码在这种情况下无法正常工作。
有没有一种方法可以涵盖这两种情况来创建一个将名称映射到相应值的字典? (仅供参考:每次可能不会有三个,可能更多/更少)。
【问题讨论】:
标签: python list dictionary tuples