Ho letto link , che riguarda il seguente comportamento di Python 3
a = {'1': 42, '2': 84} # keys are str on purpose, c.f. the issue
import random
random.choice(a.keys())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/nix/store/.../lib/python3.7/random.py", line 262, in choice
return seq[i]
TypeError: 'dict_keys' object does not support indexing
Ho scoperto che questa chiamata funzionalmente equivalente ha esito positivo
random.sample(a.keys(), 1)[0]
'1'
Data la giustificazione del problema, c'è qualche motivo di principio più profondo per cui le due funzioni dovrebbero comportarsi diversamente, ci sono considerazioni pratiche per rendere sample()
più flessibile nei suoi argomenti, o si tratta solo di un incidente di implementazione?