Il fatto che random.sample (seq, 1) [0] === random.choice (seq) significa che entrambe le funzioni dovrebbero avere la stessa precondizione su seq?

0

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?

    
posta user7610 11.11.2018 - 22:28
fonte

0 risposte

Leggi altre domande sui tag