字典值列表

2024-04-25 21:01:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图根据设置的键将值列表添加到字典列表中。我尝试了以下操作,但是由于键名重复,我丢失了所有其他值。你知道吗

>>> values = ['XS ', '1', 'S ', '10', 'M ', '1', 'L ', '10', 'XL ', '10']
>>> keys = ['size', 'stock'] * (len(values) / 2)
>>> result = dict(zip(keys, values))
>>> print result
{'stock': '10', 'size': 'XL '}

我想要实现的是下面列出的一系列格言。我怎样才能做到这一点?你知道吗

[{'stock': '10', 'size': 'XL '}, {'stock': '10', 'size': 'L'}, ......]

Tags: 列表sizelen字典stockresultkeyszip
2条回答

您可以使用如下列表:

>>> values = ['XS ', '1', 'S ', '10', 'M ', '1', 'L ', '10', 'XL ', '10']
>>> [{'size':i, 'stock':j} for i, j in zip(values[0::2], values[1::2])]
[{'stock': '1', 'size': 'XS '}, {'stock': '10', 'size': 'S '}, {'stock': '1', 'size': 'M '}, {'stock': '10', 'size': 'L '}, {'stock': '10', 'size': 'XL '}]

请注意,在这种情况下,您不必乘以关键点。你知道吗

通常使用dict的目的是将唯一键与关联的值相关联,您最初尝试为每个项目关联size: ...stock: ...,但为什么不将大小链接到库存?在这种情况下,您只需执行以下操作:

result = dict(zip(values[::2], values[1::2]))

或者不需要切片:

value_iter = iter(values)
result = dict(zip(value_iter, value_iter))

这将一次从列表中获取两个元素。你知道吗

这样,您仍然知道dict中给定的键是大小,关联的值是该大小的库存。你知道吗

相关问题 更多 >