¿Alguien podría ayudarme a encontrar una manera de hacer la siguiente función en Python?
Creo que podría usar un ciclo for con índices y hacerlo de esa manera, pero podría haber un método más fácil con la comprensión de la lista de pitones
let rows = [['10kg', '12.5', '1.25', '8'], ['25kg', '28.75', '1.15', '6'], ['50kg', '50', '1.0', '5'], ['100kg', '100', '1.0', '3'], ['250kg', '250', '1.0', '5'], ['500kg', '500', '1.0', '5'], ['1liter', '1000', '1.0', '5']]; let labels = ["Weight","Price","Price Per","Amount"]; let values = rows.map((row, idx) => { let d = {id: idx}; row.forEach((c, i) => d[labels[i]] = c); return d; }); console.log(values) let columns = labels.map(l => ({field: l, width: 150})); console.log(columns);En Python, puede crear un dict a partir de los elementos correspondientes de dos listas con dict(zip(keys, values)) .
values = [dict(zip(labels, row), id=idx) for idx, row in enumerate(rows)] columns = [{'field': l, 'width': 150} for l in labels]tal vez esto es lo mejor que puedo hacer por ti
rows = [['10kg', '12.5', '1.25', '8'], ['25kg', '28.75', '1.15', '6'], ['50kg', '50', '1.0', '5'], ['100kg', '100', '1.0', '3'], ['250kg', '250', '1.0', '5'], ['500kg', '500', '1.0', '5'], ['1liter', '1000', '1.0', '5']] labels = ["Weight","Price","Price Per","Amount"] values = [] for y,i in enumerate(rows): a = {} a["id"] = y for index,x in enumerate(i): a[labels[index]] = x values.append(a) print(values) columns = [{"fields": i, "width":150} for i in labels] print(columns)