Quand je jouais avec Python dans un environnement interactif tel qu'IPython, c'était un type générateur au lieu d'un type liste, donc
In [2]: foo()
Out[2]: <generator object foo at 0x7f1f35a3dee8>
Je pense qu'il y a une expérience irritante. Je pense que cela est devenu particulièrement visible après Python3.
Dans un tel cas, eh bien, je devrais le modifier en list (foo ())
.
Ctrl + A (ou Début), 'l', 'i', 's', 't', '(', Ctrl + E (ou Fin), ')'
Et je dois appuyer sur la touche 8. Fastidieux. Je suis irrité.
Je suis soudainement venu avec.
class Apply:
def __init__(self, f):
self.f = f
def __lt__(self, x):
return self.f(x)
L = Apply(list)
Une fois écrit,
In [2]: foo()
Out[2]: <generator object foo at 0x7f1f35a3dee8>
Même si c'est irritant
In [8]: foo() >L
Out[8]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Vous pouvez facilement faire une liste simplement en faisant.
Si vous créez 50-apply.py
dans le répertoire $ HOME / .ipython / profile_default / startup
, vous pouvez vous calmer et le lister avec> L
après cela.
Recommended Posts