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]