从python中的列表中形成字典列表

时间:2017-07-31 04:03:30

标签: python list dictionary

我在list中有一个python,其示例数据如下所示:

list_str = ['1. Option 1', '2. Option 2 ', '3. Option 3', '4. Option 4']

现在我要做的是使用此list of dictionary中的项目形成list。输出list of dictionary应如下所示:

[
                        {
                            "text": "1. Option 1",
                            "value": "1"
                        },
                        {
                            "text": "2. Option 2",
                            "value": "2"
                        },
                        {
                            "text": "3. Option 3",
                            "value": "3"
                        },
                        {
                            "text": "4. Option 4",
                            "value": "4"
                        }

                    ]

现在我尝试将此作为构建list of dictionary

的第一步
list_of_dict = dict((x,y) for x,y in enumerate(list_str,1))

产生此输出,这不是正确的输出,但我无法进一步修改它以获得所需的输出:

{1: '1. Option 1 ', 2: '2. Option 2 ', 3: '3. Option 3 ', 4: 'Option 4 '}

如何修改代码以获得正确的所需输出?

3 个答案:

答案 0 :(得分:2)

您可以尝试:

dictionaries = []

for x, y in enumerate(list_str, 1):
    dictionaries.append({'text': y, 
                         'value': str(x)
                        })

或者将其作为一个班轮:

dictionaries = [{'text': y, 'value': str(x)} for x, y in enumerate(list_str, 1)]

答案 1 :(得分:0)

你可以这样试试,

In [11]: [{'value':str(x),'text':y} for x,y in enumerate(list_str,1)]
Out[11]: 
[{'text': '1. Option 1', 'value': '1'},
 {'text': '2. Option 2 ', 'value': '2'},
 {'text': '3. Option 3', 'value': '3'},
 {'text': '4. Option 4', 'value': '4'}]

列表理解将是解决方案,但您必须在每次迭代中指定键和值,然后才能正确分配。

答案 2 :(得分:0)

我会这样做(许多可能性之一):

Y = CJ(group_id1=d1$group_id1, group_id2=d_grouped$group_id2)