如何从多个列表生成字典?
How to generate dictionaries from multiple lists?
我有以下列表:
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}]
通常认为 post 先尝试是一件好事。
总之,你要找的是:
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', '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}]
listofdicts = [{'label':j,'value':i} for i,j in zip(valuevalues,labelvalues)]
标签和值列表是多余的。
试试这个解决方案:
[{labels[i]:labelvalues[i],values[i]:valuevalues[i]} for i in range(len(valuevalues))]
我有以下列表:
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}]
通常认为 post 先尝试是一件好事。
总之,你要找的是:
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', '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}]
listofdicts = [{'label':j,'value':i} for i,j in zip(valuevalues,labelvalues)]
标签和值列表是多余的。
试试这个解决方案:
[{labels[i]:labelvalues[i],values[i]:valuevalues[i]} for i in range(len(valuevalues))]