【问题标题】:Convert list to list of dictionaries: Python将列表转换为字典列表:Python
【发布时间】:2022-08-16 21:31:24
【问题描述】:
我有以下示例列表。
my_list = [(\'User2\', \'String\'), (\'User2\', \'Integer\'), (\'User3\', \'String\')]
我想在列表中追加name 和dtype,并希望获得类似于如下的字典列表。
my_new_list = [{\'name\':\'User2\', \'dtype\':\'String\'}, {\'name\': \'User2\', \'dtype\':\'Integer\'}, {\'name\': \'User3\', \'dtype\':\'String\'}]
这是我如何尝试的:
my_new_list = []
for i in my_list:
my_new_list.append(i[\'name\'])
my_new_list.append(i[\'dtype\'])
有人帮忙吗?
标签:
python
list
dictionary
【解决方案1】:
test_list = ["John", 3, "Jack", 8, "Jane", 10]
key_list = ["name", "number"]
n = len(test_list)
res = []
for idx in range(0, n, 2):
res.append({key_list[0]: test_list[idx], key_list[1] : test_list[idx + 1]})
print(str(res))
【解决方案2】:
您可以使用列表理解:
my_list = [("User2", "String"), ("User2", "Integer"), ("User3", "String")]
my_new_list = [{"name": u, "dtype": s} for u, s in my_list]
print(my_new_list)
印刷:
[
{"name": "User2", "dtype": "String"},
{"name": "User2", "dtype": "Integer"},
{"name": "User3", "dtype": "String"},
]
【解决方案3】:
你可以试试这个:
my_list = [('User2', 'String'), ('User2', 'Integer'), ('User3', 'String')]
my_new_list = []
for i in my_list:
my_new_list.append({'name':i[0],'dtype':i[1]})
print(my_new_list)