Techniques souvent utilisées dans le codage court en python (Bloc-notes)

Je mettrai à jour de temps en temps les techniques que j'ai apprises dans le show coding récemment commencé sur le site codefights.

Considération de codage court

De base

<Et <=

L'opérateur de comparaison <= peut être omis et peut être réduit de ** 1 caractère **

# long
a <= 3

# short (Quand a est un entier)
a < 4

~ -et- ~

Correspond à -1 et +1 respectivement Cependant, comme il a une priorité plus élevée que l'opérateur de multiplication, il peut être réduit de ** 2 caractères ** en omettant les parenthèses.

# long
b * (a - 1) * 5

# short
b * ~-a * 5

Opérateur triangulaire

: (Deux-points) et le côté gauche de l'affectation peuvent être omis

# long
if a < b:
    c = 4
else:
    c = 2

# short
c = 4 if a < b else 2

repr littéral

(Python2 uniquement) Utilisez \ \ pour convertir en chaîne

# long
str(1600)

# short
`1600`

Vrai, Faux constante

Si vous souhaitez renvoyer une valeur logique exactement, utilisez une opération logique sans utiliser True ou False.

# long
b = False

# short
b = 0 > 1



# long
return True

# short
return 1 > 0

import as Raccourcissez également le module à importer

# long
import math
math.sqrt(10)

# short
import math as m
m.sqrt(10)

Contrôle d'équivalence en bloc

Connectez plusieurs comparaisons de chaînes et effectuez à la fois

#Le premier et le dernier caractères correspondent
# long
a[0] == b[0] and a[-1] == b[-1]

# short
a[0] + a[-1] == b[0] + b[-1]


#a et b,c et d ont la même longueur(Ou unique même lorsqu'il est combiné)Si
# long
a == b and c == d

# short
a + c == b + d

Fonctions etc.

S'il s'agit d'un codefights Challenge, la réponse sous forme de fonction sera testée.

lambda Si possible, vous pouvez réduire ** 4 caractères ** en convertissant la fonction en une expression lambda.

# long
def Hoge(n):
    return n * 2

# short
Hoge = lambda n: n * 2

Nom de l'argument

Les noms d'argument peuvent être un caractère car il existe de nombreux cas où ils ne sont pas explicitement appelés.

# long
def Hoge(arg):
    return arg ** arg

# short
def Hoge(a):
    return a ** a

Fonction récursive

Affecter à une variable à une lettre lors de l'utilisation récursive

# long
def LongLongHoge(a):
    if a < 3:
        return a
    return LongLongHoge(a - 2) * LongLongHoge(a - 1)

# short
def LongLongHoge(a):
    if a < 3:
        return a
    return t(a - 2) * t(a - 1)
t = LongLongHoge

Encore plus court avec lambda et affectation simultanée

# short
LongLongHoge = t = lambda a: a if a < 3 else t(a - 2) * t(a - 1)

application

Conditionnement dans une liste

# long
t = a % 3
if t == 0:
    a = a * 2
elif t == 1:
    a = 0
elif t == 2:
    a = t * 2

# short
a = [a * 2, 0, (a % 3) * 2][a % 3]

# short
t = a % 3
a = [a * 2, 0, t * 2][t]

Utilisez bien les expressions conditionnelles

(a <b) renvoie Vrai et Faux, mais peut être utilisé pour l'arithmétique comme 1, 0 respectivement Il existe de nombreux modèles qui peuvent être omis en l'utilisant

# long
c = 4 if a < b else 2

# short
c = 2 + 2 * (a < b)

Créer une fonction qui contient d'autres méthodes telles quelles

# long
myhex = lambda n: '%X' % n

# short
myhex = '{:X}'.format
myhex = '%X'.__mod__

Recommended Posts

Techniques souvent utilisées dans le codage court en python (Bloc-notes)
[python] Techniques souvent utilisées dans l'apprentissage automatique
Code souvent utilisé dans les applications Python / Django [préfectures]
Une collection de code souvent utilisée dans Python personnel
Paramètres souvent utilisés dans Jupyter
Techniques de tri en Python
Commandes souvent utilisées dans l'environnement de développement lors de l'implémentation de Python
Conseils pour coder courts et faciles à lire en Python
Peut être utilisé avec AtCoder! Une collection de techniques pour dessiner du code court en Python!
8 commandes fréquemment utilisées dans Python Django
[Python] Connaissances de base utilisées dans AtCoder
Résumé de la grammaire fréquemment utilisée dans les pandas
Résumé des méthodes fréquemment utilisées chez les pandas
Commandes liées au disque souvent utilisées dans Ubuntu (Notes)
Ecrire une courte définition de propriété en Python
Traitement des mémos souvent utilisés dans les pandas (débutants)
Python scikit-learn Une collection de conseils de modèles prédictifs souvent utilisés sur le terrain
Python scikit-learn Une collection de conseils de modèles prédictifs souvent utilisés sur le terrain
++ et-ne peuvent pas être utilisés pour incrémenter / décrémenter en python
Trouvez des nombres premiers avec un code aussi court que possible en Python
Paramètres de codage Python avec Visual Studio Code
Astro: modules / fonctions python fréquemment utilisés pour l'analyse
Quadtree en Python --2
Python en optimisation
CURL en Python
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
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
Premier Python ~ Codage 2 ~
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