Un paio di cose OK di Python

Attualmente sono alle prese con un programmino scritto in Python sviluppato con un giovane nerd in remoto, 15 km. Funziona. E stanno capitando altre due cose che forse dovrei aver dato per scontato.

L’analisi e lo schema iniziale sono stati molto ampliati strada facendo; poi sono stati rivisti e aggiustati più volte. Ma mai stravolti e questo lo considero abbastanza normale.

Non so voi ma io vivo circondato da windowsiani duri e puri. Sempre in modo “chissene 🦎”. Tra le specifiche c’era che il programma era solo per Linux 😁 Poi… adesso vi conto.

In realtà lo sapevo, credo di averlo detto anche in questo blog (ma non mi va di cercarlo). Sì, è saltato fuori che “non si sa mai; e se poi…” insomma Windows 😐

Non l’ho fatto io ma lo riporto, è una caratteristica positiva di Python:

>>> import platform
>>> platform.platform()
'Linux-4.13.0-36-generic-x86_64-with-Ubuntu-17.10-artful'

OK, il più è fatto, ecco:

>>> pl=platform.platform()
>>> pl.startswith('Linux')
True

Le istruzioni legate all’OS sono pochissime. Ancora meno si hai cura di evitare pathnames letterali (ma non sempre è possibile). Ci sono poi alcune funzioni specifiche di un OS particolare; da evitare e ampiamente evitabili.

Post troppo corto? Allora aggiungo un’altra roba, questa scoperta solo ora (a me nessuno dice mai niente). È un problema dei dizionari, i dicts.
Il dict funziona perfettamente tranne che in un caso, improbabile ma c’è Murphy: i dati non sono sortati e se vuoi stamparlo su carta e lo vuoi ordinato come fai? Semplice:

>>> from operator import itemgetter
>>> anim = {'gatto' : 'cat', 'cane' : 'dog', 'maiale' : 'pig', 'mucca' : 'cow'}
>>> type(anim)
<class 'dict'>
>>> s_anim = sorted(anim.items(), key=itemgetter(0))
>>> type(s_anim)
<class 'list'>
>>> k_anim = dict(s_anim)
>>> type(k_anim)
<class 'dict'>
>>> k_anim
{'cane': 'dog', 'gatto': 'cat', 'maiale': 'pig', 'mucca': 'cow'}
>>> l_anim = sorted(anim.items(), key=itemgetter(1))
>>> l_anim
[('gatto', 'cat'), ('mucca', 'cow'), ('cane', 'dog'), ('maiale', 'pig')]

Semplice vero? si trasforma il dict in lista di tuple e questa è ordinabile con sorted(). Via itmgetter() posso selezionare il sort sia per key che value. Infine con dict ricavo il dizionario dalla lista.

Sì lo so che questo lo sanno tutti. Tranne me. A me nessuno dice mai niente, nada, zilch 😡 (auto-cit.).

👽

Posta un commento o usa questo indirizzo per il trackback.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

%d blogger hanno fatto clic su Mi Piace per questo: