问题描述
我有以下列表:
valuevalues = [4,5,35,23,16,7,12]
labelvalues = ['john','joe','Pier','Paul','Moe','Jane','Ruth']
labels = ['label' for i in range(len(valuevalues))]
values = ['value' for i in range(len(valuevalues))]
我想生成以下字典:
[{'label': 'john','value':4},{'label': 'joe','value':5},{'label': 'Pier','value':35},...
{'label': 'Ruth','value':12}]
我应该使用哪种循环或函数?
解决方法
使用 zip
和以下理解:
[{"label": l,"value": v} for l,v in zip(labelvalues,valuevalues)]
# [{'label': 'john','value': 4},{'label': 'joe','value': 5},# {'label': 'Pier','value': 35},{'label': 'Paul','value': 23},# {'label': 'Moe','value': 16},{'label': 'Jane','value': 7},# {'label': 'Ruth','value': 12}]
,
试试这个解决方案:
[{labels[i]:labelvalues[i],values[i]:valuevalues[i]} for i in range(len(valuevalues))]
,
通常认为先发布您的尝试是一件好事。
不管怎样,你要找的是:
result = [{'label': label,'value': value} for label,value in zip(labelvalues,valuevalues)]
,
试试这个
a = [4,5,35,23,16,7,12]
b = ['john','joe','Pier','Paul','Moe','Jane','Ruth']
c = []
for x,y in zip(a,b):
m = {'label':y,'value':x}
c.append(m)
print(c)
输出:
[{'label': 'john',{'label': 'Pier',{'label': 'Moe',{'label': 'Ruth','value': 12}]
,
listofdicts = [{'label':j,'value':i} for i,j in zip(valuevalues,labelvalues)]
标签和值列表是多余的。