On 03/29/2014 07:53 PM, Nicola Larosa wrote:
Daniele Zambelli wrote:
La differenza fondamentale è che in un insieme gli elementi
non sono ripetuti.
Quella è una. Un'altra è che non sono ordinati.
Un'altra differenza rispetto alle liste e' che gli elementi di un set
devono essere immutabili:
>>> myset = {1, 2}
>>> myset = {1, [2]} # Errore, [2] e' mutabile
Traceback (most recent call last):
...
TypeError: unhashable type: 'list'
Visto che i set sono mutabili, questo implica ad esempio che non possono
essere usati come chiavi di un dizionario, e implica anche che un set
non puo' contenere un set:
>>> {1, {'a'}}
Traceback (most recent call last):
...
TypeError: unhashable type: 'set'
Una lista invece puo' contenere qualsiasi oggetto, per cui anche
un'altra lista:
>>> [1, ['a']]
[1, ['a']]
Esistono anche i set immutabili :) Sono istanze del tipo built-in
frozenset, e non esiste un letterale che li rappresenti, per cui vanno
creati chiamando direttamente la classe frozenset:
>>> fset = frozenset(('a', 0, 3, 'b', 'c'))
>>> {1, fset} # Set contenente un set (frozenset)
set([frozenset(['a', 0, 'c', 3, 'b']), 1])
>>> fset = frozenset(('a', 0, 3, 'b', 'c'))
>>> mydic = {1: 'uno', fset: 'foooo'}
--
Marco Buttu
INAF-Osservatorio Astronomico di Cagliari
Via della Scienza n. 5, 09047 Selargius (CA)
Phone: 070 711 80 217
Email: mbu...@oa-cagliari.inaf.it
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python