0
votes

Égaliser les longueurs de toutes les listes dans une liste? (Python)

contexte important: DIG sur le Wiki ESOLANG

Je fais un compilateur pour un langage de programmation ésotérique, en utilisant une liste 2D pour tenir compte de la nature 2D de la langue. Le problème vient lorsque j'ai besoin de toutes les listes de la liste d'une méga pour avoir la même longueur.

Ceci: [["#", "#"], ["#", "#", "#"]]

Besoins être ceci: [["#", "#", ""], ["#", "#", "#"]]

merci!


3 commentaires

Vous êtes juste en train d'ajouter à la fin?


de chaque subliste?


Oui, si c'est ce dont vous avez besoin, c'est un oui.


3 Réponses :


1
votes

Pour appliquer FLOSSVALUES dans des listes inégales, utilisez la fonction iTertoolts.zip_longest. xxx


0 commentaires

0
votes

Vous pouvez le faire comme ceci, trouver la longueur maximale des listes:

max_length = max( len(i) for i in l)
[ i + [" "]*(max_length-len(i)) for i in l ]


0 commentaires

0
votes
>>> mega_list = [["#","#"],["#","#","#"]]
>>> for a in mega_list:
...     a.extend([" "] * (max(map(len, mega_list)) - len(a)))
...
>>> mega_list
[['#', '#', ' '], ['#', '#', '#']]

0 commentaires