203 votes

Quelle est la bonne façon de formater une dict multiligne en Python ?

En Python, je veux écrire un multi-ligne dict dans mon code. Il ya un couple de façons on pourrait le mettre en forme. Voici quelques-uns que je pouvais penser:

  1. mydict = { "key1": 1,
               "key2": 2,
               "key3": 3, }
    
  2. mydict = { "key1": 1,
               "key2": 2,
               "key3": 3,
             }
    
  3. mydict = {
        "key1": 1,
        "key2": 2,
        "key3": 3,
    }
    

Je sais que l'un des ci-dessus est syntaxiquement correct, mais je suppose qu'il est l'une des meilleures de l'indentation et de saut de ligne style pour Python dicts. Quel est-il?

Remarque: Ce n'est pas un problème de syntaxe. Tous les ci-dessus sont (autant que je sache) valide des instructions Python et sont équivalents les uns aux autres.

262voto

FogleBird Points 23405

J’ai utiliser #3. Idem pour les longues listes, tuples, etc.. Il ne nécessite pas ajouter d’espace supplémentaire au-delà les indentations. Comme toujours, être cohérent.

De même, voici ma façon préférée de longues chaînes, y compris sans introduire n’importe quel espace blanc (que vous obtiendriez si vous avez utilisé les chaînes avec guillemets triples multilignes) :

34voto

Iceberg Points 919

Tout d’abord, comme dit Steven Rumbalski, « PEP8 n’est pas répondre à cette question », donc c’est une question de préférence personnelle.

Je voudrais utiliser un format semblable mais non identique comme format 3. Voici la mienne et pourquoi.

11voto

dugres Points 3239

Étant donné que vos clés sont des chaînes, et puisque nous parlons de lisibilité, je préfère :

-1voto

Artsiom Rudzenka Points 9771

Dans nos projets, nous utilisons des 1er et 2e. La seule différence est que nous utilisons aussi limitation de longueur max en char 81-91, donc en cas de gros dictionnaires, tuples et ainsi de suite, nous à partir de la ligne suivante juste après avoir dépassé max len limite, pour ex :

OU

Mais parfois - vraiment très rarement :

-1voto

Jake Points 35

De mon expérience avec des tutoriels et autres choses numéro 2 semble toujours préféré, mais c’est un choix de préférence personnelle plus qu’autre chose.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X