[PIPython] sostituzione in lista
Nicola Larosa
nico
Ven 19 Nov 2004 15:16:54 CET
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
> Ho una situazione di questo tipo:
>
> lista = [1,2,3,4,"ale",5,6,"ale",8,9]
>
> quale e' secondo voi il sistema piu' "pythonico" / efficiente per
> _sostituire_ ogni ricorrenza di "ale" con, esempio, None ? (o qualsiasi
> altro valore se per quello)
Per esempio così:
>>> try:
... while True:
... lista[lista.index('ale')] = None
... except ValueError:
... pass
...
>>> lista
[1, 2, 3, 4, None, 5, 6, None, 8, 9]
> ho dato un'occhiata alle list comprehnsion ma non ho trovato un sistema
> per ottenere quello che mi interessa.
Eccone una, non bellissima: :-)
>>> [((elem != 'ale') and elem or None) for elem in lista]
[1, 2, 3, 4, None, 5, 6, None, 8, 9]
Le parentesi tonde non sono necessarie, ma aiutano a interpretare. Notare come
non si può testare "elem == 'ale'", dato che il valore da sostituire può
essere None. ;-)
- --
Nicola Larosa - nico a tekNico.net
16.16. Why should I care what color the bikeshed is?
The really, really short answer is that you should not. The somewhat
longer answer is that just because you are capable of building a bikeshed
does not mean you should stop others from building one just because you
do not like the color they plan to paint it. -- FreeBSD FAQ
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
iD8DBQFBfj9SXv0hgDImBm4RAnr3AJ43Gh8LPpJBdAXIVaQvXLj2zZfE5wCfWrM5
XY2MrPCvpfOCTyYbJgG760w=
=2e/2
-----END PGP SIGNATURE-----
More information about the Python
mailing list