-1
votes

Laisser des parties des instructions en blanc pour que Python soit terminé

Je suis nouveau à Python, donc je ne sais pas si cela est possible, mais ma supposition est oui. Je veux itérer sur une liste et mettre des articles dans de nouvelles listes en fonction de leur valeur. Par exemple, si item_x == 4 , je voudrais le mettre dans une liste appelée list_for_4 . Il en va de même pour tous les autres éléments de ma liste et de ma liste 0 à 10. Il est donc possible de généraliser une déclaration de telle sorte que si item_x == * une certaine valeur * , il sera Ajouté à List_for_ * Une certaine valeur * ? Merci!


2 commentaires

Pourquoi voudriez-vous faire cela au lieu de, dites, utilisez un dict ?


On dirait que vous essayez de Créez un nombre variable de variables ...


4 Réponses :


0
votes

Peut-être utiliser la compréhension de la liste avec si la déclaration à l'intérieur?

Comme: xxx

et combinez-le avec un dict.


0 commentaires

0
votes

au lieu d'essayer de générer une variables dynamiques. Une carte utilisant une structure de dictionnaire pourrait vous aider.

Par exemple: P>

from collections import Counter
item_list = [1, 2, 3, 9, 2, 2, 3, 4, 4]
result = Counter(item_list)
print(result)


0 commentaires

0
votes

avec une simple itération à travers la liste: xxx pré>

ou, si vous voulez une condition plus compliquée que la valeur de x, définissez une fonction: p>

list(map(lambda x: f(x).append(x),lst))


0 commentaires

0
votes

Je ne sais pas pourquoi vous voulez le faire. Mais vous pouvez le faire.

data = [1, 2, 3, 4, 1, 2, 3, 5]

for item in data:
    name = f'list_for_{item}'
    if name in globals():
        globals()[name].append(item)
    else:
        globals()[name] = [item]


0 commentaires