I want to create an array of values based on a condition.
data_total = [
{"modele": "DS",
"cote_actual": 10000},
{"modele": "DS",
"cote_actual": 12000},
{"modele": "204",
"cote_actual": 10000}]
for total in data_total:
model = total["modele"]
cote_actual = total["cote_actual"]
model_ds = []
if model == "DS":
model_cote = cote_actual
print(model_cote)
model_ds.append(model_cote)
print(model_ds)
The output I want:
"modele_ds" = [10000, 12000]
I mess with the loop, I don’t have the input I need. I know I have to append or populate the array.
Advertisement
Answer
As others said, you must assign model_ds list outside the loop, because having it inside the loop it gets empty with every iteration. Your code should be (line that changed is with comment):
data_total = [
{"modele": "DS",
"cote_actual": 10000},
{"modele": "DS",
"cote_actual": 12000},
{"modele": "204",
"cote_actual": 10000}]
model_ds = [] #assign model_ds outside the loop
for total in data_total:
model = total["modele"]
cote_actual = total["cote_actual"]
if model == "DS":
model_cote = cote_actual
model_ds.append(model_cote)
Output:
>>> print(model_ds) [10000, 12000]