Une doublure en Python

En Python, une seule ligne est difficile à faire, mais ce n'est pas impossible. Je pense que la raison pour laquelle une seule ligne est difficile à faire en Python est qu'il y a peu de choses qui peuvent être exprimées et que les instructions composées ne peuvent pas être écrites sur une seule ligne. Ici, nous allons introduire une méthode pour incorporer divers processus dans une expression.

Méthode de base

et, ou, opérateur ternaire

ʻSi a: f () peut être écrit comme ʻa et f (). ʻSi non a: f () peut être écrit comme ʻa ou f (). (Si vous n'êtes pas familier avec le court-circuit des opérateurs logiques, veuillez consulter http://qiita.com/gyu-don/items/a0aed0f94b8b35c43290.) De plus, l'opérateur ternaire a une syntaxe légèrement désagréable. true_value if condition else false_value

Tapling, liste

Vous pouvez combiner plusieurs expressions en une seule expression en créant une touche ou une liste. Vous pouvez également récupérer la valeur à un emplacement spécifique en y faisant référence avec [0] ou [-1] à la fin.

Boucle utilisant la notation d'inclusion de liste

Les boucles sont en notation d'inclusion de liste.

Générateur

Surtout en Python3, les objets générateurs apparaissent partout. La différence entre une liste et un générateur est importante, surtout lorsque vous vous attendez à des effets secondaires. La notation d'inclusion de liste crée une liste jusqu'au dernier élément à la volée. D'autre part, le générateur n'évalue pas chaque élément tant qu'il n'est pas appelé par next (). Pour évaluer chaque élément, vous pouvez appeler next vous-même, utiliser list (gen) ou utiliser la notation d'inclusion de liste pour ... in.

Ceci et cela en utilisant lambda

lambda Vous pouvez créer des fonctions anonymes avec lambda, mais en Python, vous ne pouvez créer des fonctions anonymes qu'avec une seule expression.

Au lieu de laisser

Vous pouvez utiliser lambda pour lier des variables sans faire d'instruction. Veuillez l'utiliser dans les situations où il est difficile d'utiliser le point-virgule. (lambda a, b: a + b) (f (), g ()) réalise ʻa = f (); b = g (); a + b`.

Gardez une liste

En Python, les affectations sont des instructions, mais dans list.append ce sont des expressions. Il peut être utile d'avoir une liste comme argument. Exemple: une expression qui renvoie un résultat d'addition de 0 à 100 sans utiliser la somme ou la réduction (lambda t: [t.append(t.pop()+x)or t[0] for x in range(101)][-1])([0])

Récursif

Vous n'avez pas besoin de créer un combinateur Y compliqué, vous avez juste besoin que la fonction ait un argument qui se reçoit. Exemple: 1 à 10 étages (lambda f: f(10,f))(lambda n,f: n*f(n-1,f) if n>0 else 1)

Alors tout le monde, bonne vie en Python

fin.

Recommended Posts

Une doublure en Python
Doublure Zundko One en python
Un serveur Web de ligne (avec CGI) en python
Une doublure qui produit quatre-vingt-dix-neuf en Python
Fizzbuzz en Python (en une ligne)
curl -I python une doublure
Une doublure qui rend l'utilisation du cœur du CPU 1 à 100% en Python
DMD en Python 1D
Une doublure qui produit 1000000 chiffres de rapport de circonférence avec Python
Segfo python en une ligne
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide 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
Gérez plusieurs versions de python en un seul jupyter
CGI Server (1) édition python en une ligne
Décomposer les arguments de commande en une seule ligne en Python
[Python] Inversion de valeur booléenne en une ligne
J'ai écrit Project Euler 1 en une seule ligne.
Liste triée en Python
AtCoder # 36 quotidien avec Python
Texte de cluster en Python
AtCoder # 2 tous les jours avec Python