Anche se potrei contribuire, usa un interruttore di linea:
x = lambda x,y: x-y if x<y \
else y-x if y<x \
else 0
Non dimenticare la cosa molto bella che python è in grado di scrivere su oneliner, come nell'esempio:
a=b=0; c=b+a; d = a+b**2 #etc etc
E lambda è molto potente, ma non è inteso per la sostituzione di 1 intera funzione, voglio dire che potresti hackerarlo come (prendendo a prestito un esempio dal collega sopra):
makeTag = lambda tagName: "<{}>".format(tagName)
closeTag = lambda tagName: makeTag("/"+str(tagName))
openTag = lambda tagName: makeTag(tagName)
writeHMTLline = lambda tag,content: ""+opetTag(tag)+str(content)+closeTag(tag)
Ma vuoi davvero farlo in questo modo? È in gran parte illeggibile dopo un po 'di tempo, è come arrivare all'inizio della corda che inizia con la fine disfatta.
Lambdasfungedaunicafunzione,mappa,filtroeriduzionedellefunzioninellaprogrammazioneorientataalfunzionamento(tralealtrecose).Adesempioottenendovaloridicaratteredivalorichesonointeriedivisibiliper2
chrDev2=lambdaINT:chr(INT)ifisinstance(INT,int)andINT%2==0elseINTsomeStringList=map(chrDev2,range(30))>>>['\x00',1,'\x02',3,'\x04',5,'\x06',7,'\x08',9,'\n',11,'\x0c',13,'\x0e',15,'\x10',17,'\x12',19,'\x14',21,'\x16',23,'\x18',25,'\x1a',27,'\x1c',29]
Potrestiusarlocomefunzionediespressionidifunzionidefinendolafunzionecomplessa(opiùepiùlambdaeinserendolainunaltrolambda:
defsomeAnon(*args):returnsum(list(args))defAnon=lambdalist:[x*someAnon(*list)forxinlist]
maPythonhailsupportodelleespressionidifunzioneinunaltromodo:-letdiconochehaiunafunzionechiamatasuperAwesomeFunction
equellafunzionepuòfarecosesuper-fantastiche,puoiassegnarlaaunavariabilenonchiamandola,comequesta:
SAF=superAwesomeFunction#thereisno()attheend,
QuindioraquandochiamiSAFchiameraisuperAwesomeFunctionometodo.SecerchiattraversolatuacartellaLibpuoitrovarechelamaggiorpartedeimodulipython__builtin__
sonoscrittiinquestomodo.Ciòèpossibileperchéavoltesononecessariealcunefunzionicheeseguonoun'attivitàspecificachenonènecessariaabbastanzaperessereutilizzabiledall'utente,maènecessariaperdiversefunzioni.Quindihaiunasceltachenonpuoiavere2funzioniconilnome"superAwesomeFunction", puoi avere "superAwesomeFunctionDoingBasicStuf" e "realSuperAwesomeFunction" e poi mettere la "realSuperAwesomeFunction" nella variabile "superAwesomeFunction" e il gioco è fatto.
Puoi trovare la posizione dei moduli importati inserendo nella console importedModule.__file__
(esempio reale import os;os.__file__
) e segui quella directory nel file chiamato importedModule.py e aprilo nell'editor e scopri come puoi massimizzare la tua "conoscenza".
Spero che questo aiuti voi e forse altri colleghi nei guai.