[PYTHON] Possible de faire ca ?

ChatteAOP
2022-03-20 18:50:54

for i in range(len(Liste)):
      if Liste[i]['v'] == None:
            Liste[i]['v'] = Liste[i-1]['v']

Possible de faire ca sur une seul ligne ? :(

j'ai vu des bout de code comme celui ci : over_30 = [number if number > 30 for number in numbers]

ou encore : whales = [x for x,y in customers if y<1000000]

mais ca me donne pas la possibilité de faire comme je el souhaite

BretonaxDeter
2022-03-20 18:51:38

oui c'est possible, je crois que ca s'appelle "liste en extension" mais j'ai toujours eu du mal à le faire, du coup je pourrais pas te dire comment

ChatteAOP
2022-03-20 18:56:31

:(

Kabbalo
2022-03-20 18:57:09

Le 20 mars 2022 à 18:51:38 :
oui c'est possible, je crois que ca s'appelle "liste en extension" mais j'ai toujours eu du mal à le faire, du coup je pourrais pas te dire comment

Listes en compréhension plutôt

Perso je ne maîtrise pas du tout mais tiens si ça peut t'aider : https://python.doctor/page-comprehension-list-listes-python-cours-debutants

ChatteAOP
2022-03-20 18:58:40

Le 20 mars 2022 à 18:51:38 :
oui c'est possible, je crois que ca s'appelle "liste en extension" mais j'ai toujours eu du mal à le faire, du coup je pourrais pas te dire comment

Le 20 mars 2022 à 18:57:09 :

Le 20 mars 2022 à 18:51:38 :
oui c'est possible, je crois que ca s'appelle "liste en extension" mais j'ai toujours eu du mal à le faire, du coup je pourrais pas te dire comment

Listes en compréhension plutôt

Perso je ne maîtrise pas du tout mais tiens si ça peut t'aider : https://python.doctor/page-comprehension-list-listes-python-cours-debutants

merci :oui:

je viens de d'découvrir ce style d'écriture un peu inhabituelle :( mais si ca peut résoudre mon problème :oui:

JuliaHolter2
2022-03-20 18:58:58

lst = [ Liste[i-1]['v'] if Liste[i]['v'] == None for i in range(len(Liste))]

ca marche ca non ?

ChatteAOP
2022-03-20 19:00:12

Le 20 mars 2022 à 18:58:58 :
lst = [ Liste[i-1]['v'] if Liste[i]['v'] == None for i in range(Liste) ]

ca marche ca non ?

je sais pas
je vais replacer les valeur dans mon code et je te dis :hap:

ChatteAOP
2022-03-20 19:02:18

Le 20 mars 2022 à 18:58:58 :
lst = [ Liste[i-1]['v'] if Liste[i]['v'] == None for i in range(Liste) ]

ca marche ca non ?

je sais pas
je vais replacer les valeur dans mon code et je te dis :hap:

hJdgf8856dfhgfo
2022-03-20 19:04:59

sinon garde les boucle, au moins on voit plus facilement ce que tu veux faire

Foxyorki23
2022-03-20 19:06:21

liste = [liste[i] for i in range(len(liste)) if liste[i] != None else {key : value for (key, value) in liste[i].items() if key!="v" else (key, liste[i - 1])}]

:hap:

ChatteAOP
2022-03-20 19:07:44

Le 20 mars 2022 à 19:06:21 :
liste = [liste[i] for i in range(len(liste)) if liste[i] != None else {key : value for (key, value) in liste[i].items() if key!="v" else (key, liste[i - 1])}]

:hap:

https://image.noelshack.com/fichiers/2016/32/1470919005-img25.pnghttps://image.noelshack.com/fichiers/2016/32/1470919005-img25.png

Foxyorki23
2022-03-20 19:11:47

Le 20 mars 2022 à 19:07:44 :

Le 20 mars 2022 à 19:06:21 :
liste = [liste[i] for i in range(len(liste)) if liste[i] != None else {key : value for (key, value) in liste[i].items() if key!="v" else (key, liste[i - 1])}]

:hap:

https://image.noelshack.com/fichiers/2016/32/1470919005-img25.pnghttps://image.noelshack.com/fichiers/2016/32/1470919005-img25.png

liste = [liste[i]  if liste[i]["v"] != None else {key : value  if key!="v" else (key, liste[i - 1]) for (key, value) in liste[i].items() } for i in range(len(liste))]

petite erreure de syntaxe https://stackoverflow.com/questions/4260280/if-else-in-a-list-comprehension
:hap:

ah ça marche

MrCuisine7
2022-03-20 19:15:00

Avec map et lambda oui sûrement

Foxyorki23
2022-03-20 19:18:39

3eme tentative :

liste = [liste[i]  if liste[i]["v"] != None else {key : value  if key!="v" else (key, liste[i - 1]["v"]) for (key, value) in liste[i].items() } for i in range(len(liste))]

:hap:

ChatteAOP
2022-03-20 19:19:57

Le 20 mars 2022 à 19:18:39 :
3eme tentative :

liste = [liste[i]  if liste[i]["v"] != None else {key : value  if key!="v" else (key, liste[i - 1]["v"]) for (key, value) in liste[i].items() } for i in range(len(liste))]

:hap:

la longeur de la liste avant et apres est identique donc je suppose que ca marche pas :hap:

Foxyorki23
2022-03-20 19:20:39

Le 20 mars 2022 à 19:19:57 :

Le 20 mars 2022 à 19:18:39 :
3eme tentative :

liste = [liste[i]  if liste[i]["v"] != None else {key : value  if key!="v" else (key, liste[i - 1]["v"]) for (key, value) in liste[i].items() } for i in range(len(liste))]

:hap:

la longeur de la liste avant et apres est identique donc je suppose que ca marche pas :hap:

La version qui marche liste = [liste[i] if liste[i]["v"] != None else {key : value if key!="v" else liste[i - 1]["v"] for (key, value) in liste[i].items() } for i in range(len(liste))] :hap:

 liste = [{"coucou" : "toto", "coucou1" : "toto1", "v" : 3}, {"v" :None},{"v" : 12}, {"v" : 12}]

liste = [liste[i] if liste[i]["v"] != None else {key : value if key!="v" else liste[i - 1]["v"] for (key, value) in liste[i].items() } for i in range(len(liste))]

liste = [{'coucou': 'toto', 'coucou1': 'toto1', 'v': 3}, {'v': 3}, {'v': 12}, {'v': 12}]

Kabbalo
2022-03-20 19:25:49

Le 20 mars 2022 à 19:20:39 :

Le 20 mars 2022 à 19:19:57 :

Le 20 mars 2022 à 19:18:39 :
3eme tentative :

liste = [liste[i]  if liste[i]["v"] != None else {key : value  if key!="v" else (key, liste[i - 1]["v"]) for (key, value) in liste[i].items() } for i in range(len(liste))]

:hap:

la longeur de la liste avant et apres est identique donc je suppose que ca marche pas :hap:

La version qui marche liste = [liste[i] if liste[i]["v"] != None else {key : value if key!="v" else liste[i - 1]["v"] for (key, value) in liste[i].items() } for i in range(len(liste))] :hap:

 liste = [{"coucou" : "toto", "coucou1" : "toto1", "v" : 3}, {"v" :None},{"v" : 12}, {"v" : 12}]

liste = [liste[i] if liste[i]["v"] != None else {key : value if key!="v" else liste[i - 1]["v"] for (key, value) in liste[i].items() } for i in range(len(liste))]

liste = [{'coucou': 'toto', 'coucou1': 'toto1', 'v': 3}, {'v': 3}, {'v': 12}, {'v': 12}]

Ouais je comprends mieux pourquoi les listes en compréhension c'est plutôt utilisé pour des instructions simples :rire:

Foxyorki23
2022-03-20 19:31:32

DE RIEN L'AUTEUR :) :) :)

ChatteAOP
2022-03-20 19:45:57

Le 20 mars 2022 à 19:31:32 :
DE RIEN L'AUTEUR :) :) :)

non sans rigoler ca fonctionne pas pour moi :rire:
je sais pas surement ne mauvaise adaptation mais merci je vais creuser sur la base de ton exemple :oui:

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    Partenaire: JVFlux
    Ce site n'est pas associé à Jeuxvideo.com ou Webedia. Nous utilisons seulement des archives publiques.
    Il est inutile de me spammer par e-mail pour supprimer un topic. Au contraire, en conséquence, je mettrais votre topic dans le bloc ci-dessous.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.