Python 将元组转换为字典
我在互联网上查阅了很多书,但我似乎找不到一个例子来说明我在做什么。我不想这样问这个问题,因为这感觉像是一个非常基本的问题,但在过去的几个小时里,我一直把头撞在墙上,所以下面是: 我该如何扭转这种局面:Python 将元组转换为字典,python,dictionary,tuples,Python,Dictionary,Tuples,我在互联网上查阅了很多书,但我似乎找不到一个例子来说明我在做什么。我不想这样问这个问题,因为这感觉像是一个非常基本的问题,但在过去的几个小时里,我一直把头撞在墙上,所以下面是: 我该如何扭转这种局面: item = ((100,May),(160,June),(300,July),(140,August)) 为此: { item:[ {
item = ((100,May),(160,June),(300,July),(140,August))
为此:
{
item:[
{
value:100,
label:'May'
},
{
value:160,
label:'June'
},
{
value:300,
label:'July'
},
{
value:140,
label:'August'
}
]
}
你有一个列表。您可以使用列表理解遍历列表,然后每个元素将成为一个字典条目。只需使用[0]和[1]符号将其分开即可。这是Python的基础。这将是值得你去回顾什么是列表理解以及它们是如何工作的。同时阅读国际热核实验堆模块文档。有趣的是,列表中的元素都是具有相同键的字典
'value','label'
,而不是直接的值元组??对我来说没有兴趣:它只包括在数据结构中添加冗余信息,然后当您必须使用数据时,您必须进行额外的处理以获得值。如果所有元组都在模式(一个值、一个标签)上,那么在每个元素中重复这些信息的需要是什么?一个元素中的值和标签不会自动交换它们的位置!
{'item': [dict(value=value, label=label) for value, label in item]}
dict(item=map(lambda x: dict(value=x[0],label=x[1]),item))
>>> item = ((100,'May'),(160,'June'),(300,'July'),(140,'August'))
>>> keys = ('value','label')
>>> dd = {'item' : [dict(zip(keys,pair)) for pair in item]}
>>>
>>> import pprint
>>> pprint.pprint(dd)
{'item': [{'label': 'May', 'value': 100},
{'label': 'June', 'value': 160},
{'label': 'July', 'value': 300},
{'label': 'August', 'value': 140}]}