如何将列表变成词典列表?
发件人:
name=['Mary','Susan','John']
age=[15,30,20]
sex=['F','F','M']
我想要:
mylist= [ {'name':'Mary','age':15,'sex':'F'},
{'name':'Susan','age':30,'sex':'F'},
{'name':'John','age':20,'sex':'M'},
]
答案 0 :(得分:3)
这是zip
函数的完美示例。 https://docs.python.org/3.8/library/functions.html#zip
给出:
name = ['Mary','Susan','John']
age = [15,30,20]
sex = ['F','F','M']
然后:
output = []
for item in zip(name, age, sex):
output.append({'name': item[0], 'age': item[1], 'sex': item[2]})
将产生
:[
{'name': 'Mary', 'age': 15, 'sex': 'F'},
{'name': 'Susan', 'age': 30, 'sex': 'F'},
{'name': 'John', 'age': 20, 'sex': 'M'},
]
还有一种更短的列表理解方法:
output = [{'name': t[0], 'age': t[1], 'sex': t[2]} for t in zip(name, age, sex)]
答案 1 :(得分:0)
这里是一个例子:
def Convert(a):
it = iter(lst)
res_dct = dict(zip(it, it))
return res_dct
# Driver code
lst = ['a', 1, 'b', 2, 'c', 3]
print(Convert(lst))
您可以将其用作代码。
答案 2 :(得分:0)
最简单的解决方法是:
name=['Mary','Susan','John']
age=[15,30,20]
sex=['F','F','M']
list_dict = []
for i in range(0, len(name)):
dict_temp = {}
dict_temp['name'] = name[i]
dict_temp['age'] = age[i]
dict_temp['sex'] = sex[i]
list_dict.append(dict_temp)
我假设所有列表的长度都相同。