Indentation de la notation d'inclusion en Python

La notation d'inclusion en Python est pratique, mais si vous essayez de faire quelque chose d'un peu compliqué, vous vous retrouvez avec une imbrication en plusieurs étapes. Et l'imbrication réduit considérablement la lisibilité. Pour cette raison, je pense que beaucoup de gens le réécriront en notation par blocs lorsque la hiérarchie d'imbrication deviendra plus profonde.

Cependant, si vous définissez des règles et les indentez, l'imbrication ne compromettra pas la lisibilité. Par exemple, cela ressemble à ceci:

itemList = [
    (item.name, item.price)
	for item in record.items()
    for purchase in purchases
    if purchase.campaignName in {
        campaign.name
        for campaign in camapigns
    } and purchase.date > datetime.date.today() - datetime.timedelta(days = 7)
]
  1. Alignez l'indentation des parenthèses à l'extérieur de la notation d'inclusion et indentez l'un des contenus.
  2. Divisez par élément, pour la clause, (pour la clause) ..., (si la clause).

Cela peut prendre un certain temps pour s'y habituer, mais une fois que vous vous y serez habitué, ce sera beaucoup plus facile à lire que la notation par blocs. Étant donné que la notation de bloc augmente les variables de stockage de liste inutiles et réduit la lisibilité, le mérite de pouvoir s'imbriquer indéfiniment dans la notation inclusive est assez grand.

Recommended Posts

Indentation de la notation d'inclusion en Python
Quadtree en Python --2
Python en optimisation
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Liste triée en Python
AtCoder # 36 quotidien avec Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 18 en Python
Motif singleton en Python
Opérations sur les fichiers en Python
Séquence de touches en Python
Daily AtCoder # 33 en Python
Distribution logistique en Python
AtCoder # 7 tous les jours avec Python
Décomposition LU en Python
Une doublure en Python
AtCoder # 24 tous les jours avec Python
classe de cas en python
Implémentation RNN en python
AtCoder # 8 tous les jours avec Python
Traitement de fichiers en Python
Elasticsearch Reindex en Python