Perché i set e gli elenchi vuoti generano eccezioni diverse quando si chiama .pop()?Differenti eccezioni per il pop da set ed elenchi vuoti?
>>> l = []
>>> l.pop()
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
l.pop()
IndexError: pop from empty list
>>> l = set()
>>> l.pop()
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
l.pop()
KeyError: 'pop from an empty set'
Mi picchia in pochi secondi! – inspectorG4dget
Ottenere un 'KeyError' quando la chiave fornita a' dict.pop ({chiave valore}) 'non esiste, indipendentemente dal fatto che il dizionario sia o meno vuoto, ha certamente senso, ma non tanto con' set.pop() 'che non accetta uno come argomento. La mia ipotesi è che sia compatibile con la classe 'Set' nel modulo [' sets'] (http://docs.python.org/2/library/sets.html) introdotto in Python 2.3 che è stato implementato usando i dizionari secondo la documentazione. – martineau
@martineau: '.remove()' solleva anche un 'KeyError'. Secondo [questo commit] (http://hg.python.org/cpython/file/3086620db46b/Objects/setobject.c) è stato modellato dopo 'dict.pop()' * esplicitamente *. –