[Python] Iterare in una lista.

cm a python.it
Dom 16 Feb 2020 21:07:37 CET


Ciao DanZa

Il giorno dom 16 feb 2020 alle ore 19:27 Daniele Zambelli
<daniele.zambelli a gmail.com> ha scritto:
>
> Ho confrontato le due funzioni:
>
> numel = 12
> lista = [i * 11 for i in range(numel)]
> base = 5
>
> def function1(lista, base):
>     for e in lista[base:]+lista[:base]:
>     print(e)
>
> def function2(lista, base):
>     for i in range(len(lista)):
>     print(lista[(i + base) % len(lista)])
>
> function1(lista, base)
> function2(lista, base)
>
> Qualcuno di esperti saprebbe indicare le caratteristiche dei due
> approcci in termini di risorse e di tempi?

Le differenze non sono sostanziali, ma la prima è leggermente più efficiente

```
>>> def print(*args): ...
>>> timeit function1(lista, base)
1.57 µs ± 27.3 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
>>> timeit function2(lista, base)
2.48 µs ± 37.7 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
>>> timeit function1(lista, base)
1.55 µs ± 8.63 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
>>> timeit function2(lista, base)
2.45 µs ± 12 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
```

㎝

-- 
!!!! THE 🍺-WARE LICENSE (Revision ㊷):
    <㎝🐌🐍.🇮🇹> wrote this 📧. As long as you retain this notice you can
    do whatever you want with this stuff. If we meet some day, and you
    think this stuff is worth it, you can buy me a 🍺 in return. — ㎝


Maggiori informazioni sulla lista Python