PEP 3106 sugere caminho mais lento? Por quê?
Recentemente, tive que converter os valores de um dicionário em uma lista no Python 3.6 e em um caso de uso em que isso deveria acontecer muito.
Tentando ser um cara legal, eu queria usar uma solução próxima ao PEP. Agora, o PEP 3106 sugere
list(d.keys())
o que obviamente funciona bem -mas usando timeit na minha máquina Windows 7 eu vejo
>python -m timeit "[*{'a': 1, 'b': 2}.values()]"
1000000 loops, best of 3: 0.249 usec per loop
>python -m timeit "list({'a': 1, 'b': 2}.values())"
1000000 loops, best of 3: 0.362 usec per loop
Suponho que haja uma vantagem na última versão, porque mais o PEP sugere a mais lenta.
Então, aqui está minha pergunta: qual é a vantagem da última versão em comparação com a primeira?