Forum >> Programmazione Python >> Scripting >> Riordinare una lista mediante parametri stabiliti

Pagina: Indietro 1 2

@RicPol: mi sa che questa volta sei tu che hai saltato la prima parte di quello che ho scritto:

"beh ma guarda secondo me l'esempio di Ric usa già una funzione abbastanza specifica"




ho scritto quel codice giusto per confrontarlo come alternativa al tuo che ritengo migliore


il senso era che non è possibile avere una soluzione ad hoc predefinita da python

ma bisgna fare vari passaggi per ottenere il risultato desiderato come mostrato




che non ti piacciono i print e vabbè (ma contestare le variabili)




se sarei un tipo "polemico" avrei opinato la scelta di usare il sort in quel modo


creare una lista e poi ordinarla sempre con la stessa variabile non ha senso

in questo modo racchiudo tutto in una riga ritenendolo anche più leggibile:

lst = sorted(['fragola', 'mela', 'banana', 'fagiolo', 'pera', 'fantasia', 'barattolo'])


ordinare successivamente una lista lo faccio in una nuova variabile



ps il codice funziona anche usando "in"
comunque ho sbagliato anche io nel descrivere il problema è mi scuso, alla fine a me interessava estrarre ed ordinare solo quei nomi con quelle iniziali scartando le stringhe che non cominciassero con quelle iniziali. buona serata e grazie a tutti !
ciao dandi98


scusa tu se ti sei sentito a disagio per gli ultimi messaggi :ok:

no ma figurati;)
@pypi, guarda abbi pazienza non è questione di polemica ma questo è un forum per programmazione, non per raccontarsi i sogni. Un po' di precisione è necessaria, altrimenti si può dire tutto e il contrario di tutto e tutto si può rivoltare e tutto si può opinare e tutto si può contestare. Invece no, guarda. Un ORDINAMENTO e un FILTRO sono due cose diverse, non c'è santo. E la tua versione con i print non è una soluzione, punto e basta. Non è questione che non mi piacciono i print. E' che quel codice NON ordina e NON filtra, ma stampa. E' una cosa diversa. Davvero, abbi pazienza.


E uso "sort" invece di "sorted" perché in quel momento mi interessava esprimere l'idea che la mia versione funzionava basandosi sul fatto che in python gli ordinamenti sono stabili, e che quindi potevo cavarmela ripetendo sort due volte... E comunque usando "sorted" non avrei "guadagnato una riga", perché comunque da qualche parte la lista originaria deve pure arrivare, no? Comunque sì, in linea di massima si può usare "sorted" invece di "sort", se vuoi anche tenere un riferimento alla lista originale... cosa che probabilmente ti costa un pochino di più in termini di performance, e che comunque non mi sembrava fosse una richiesta dell'OP.

E poi:
> ps il codice funziona anche usando "in"

NO, non funziona anche usando "in". Anche qui, non è una questione di gusti, non è una questione di pignoleria, non è una questione che io sono polemico. Abbi pazienza, davvero (davvero!), ma il fatto è che la programmazione richiede precisione. E quel codice NON funziona usando "in". Ti lascio il piacere di scoprire perché. Può essere una buona introduzione al mondo dei test.




Ric Pol credimi ogni volta che mi rispondi mi sorprendi sempre :)

ovviamente è inutile ribadire "come ho già fatto" che il tuo codice è più specifico

e che il mio era solo un esempio fatto all'una di notte per mostrare i passaggi

che un codice altrimenti dovrebbe fare usando i famosi tre/quattro "cicli for"

e che quindi essendo un esempio non "ad hoc" ho sorvolato vari aspetti

ovviamente scrivo inutilmente perchè tanto tu ribadirai le stesse cose





precisiso che io sono solo un'appasionato di python tu invece un'esperto

e sopratutto che "io" non gareggio con nessuno che tanto non si vince nulla





ps essendo "io" un non esperto prima di postare qualcosa io la provo prima

ora tu con tutta la tua esperienza non ne avrai bisogno e ne farai a meno

però la prossima volta ti conviene farla qualche prova (vedi file allegato)



Allegati
Come ti ho già detto... con "in" non funziona. Certo, bravo: funziona se ti fai QUELLA SPECIFICA lista di parole e QUELLA SPECIFICA lista di iniziali... però davvero, ti lascio il piacere di scoprire un contro-esempio per cui quel codice NON funziona... come ti ho detto, potrebbe essere la tua prima esplorazione nel magico mondo di TESTARE IL CODICE CHE SCRIVI.
Certo, bravo: funziona se ti fai QUELLA SPECIFICA lista di parole e QUELLA SPECIFICA lista di iniziali...
"io parlo di quel codice specifico" tutto il resto è un'altro codice

nel forum ci sono migliaia di esempi con "==" e "!="




ps ma non eri tu il primo a spiegare che nella programmazione

non esiste un modo giusto di fare le cose ma varie soluzioni?




ora se parliamo di questo caso "in" e "not in" è OK x me va bene

se poi invece mi dici che in altri casi può non funzionare

concordo con te ma questa è un'altra storia

Scusa, ma mi stai trollando? Devo chiedertelo perché la tua incomprensione del problema diventa un po' imbarazzante a questo punto, a meno che tu non stia trollando apposta.


Ora, non so come dirtelo senza offenderti, ma dovrebbe essere chiaro a chiunque che un programma che promette di fare una certa cosa deve farla a partire da diversi input. Pensa se nella documentazione ufficiale di python ci fosse scritto "list.sort: questo metodo ordina *solo* la lista ["ciccio", "formaggio", "margherita", "limone"]. Tutte le altre liste invece non le ordina".


Cioè, ma davvero devo mettermi a spiegare questo? Dimmi che stai trollando, ti prego.





(davvero ragazzi... ma che male c'è a seguire un buon libro passo passo e imparare a programmare in python? Mah)

guarda sei incredibile, non so di cosa ti occupi,

ma al posto tuo farei un pensiero nella politica.



Pagina: Indietro 1 2



Esegui il login per scrivere una risposta.