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

2024-04-25 19:57:12 发布

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

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

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

现在我要做的是使用这个list中的项形成一个list of dictionary。输出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 '}

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


Tags: of数据代码textin示例fordictionary
3条回答

您可以尝试:

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)]

你可以这样试试

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'}]

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

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

list_of_dict = [{'text': s, 'value': s.split('.')[0]} for s in list_str] 

相关问题 更多 >

    热门问题