Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

110
Vistas
timeit y su default_timer están completamente en desacuerdo

Comparé estas dos funciones (descomprimen los pares nuevamente en las listas de fuentes, provienen de aquí ):

 n = 10**7 a = list(range(n)) b = list(range(n)) pairs = list(zip(a, b)) def f1(a, b, pairs): a[:], b[:] = zip(*pairs) def f2(a, b, pairs): for i, (a[i], b[i]) in enumerate(pairs): pass

Resultados con timeit.timeit (cinco rondas, los números son segundos):

 f1 1.06 f2 1.57 f1 0.96 f2 1.69 f1 1.00 f2 1.85 f1 1.11 f2 1.64 f1 0.95 f2 1.63

Claramente, f1 es mucho más rápido que f2 , ¿verdad?

Pero luego también medí con timeit.default_timer y obtuve una imagen completamente diferente:

 f1 7.28 f2 1.92 f1 5.34 f2 1.66 f1 6.46 f2 1.70 f1 6.82 f2 1.59 f1 5.88 f2 1.63

Así que claramente f2 es mucho más rápido, ¿verdad?

Suspiro. ¿Por qué los tiempos difieren totalmente de esa manera y qué método de tiempo debo creer?

Código de referencia completo:

 from timeit import timeit, default_timer n = 10**7 a = list(range(n)) b = list(range(n)) pairs = list(zip(a, b)) def f1(a, b, pairs): a[:], b[:] = zip(*pairs) def f2(a, b, pairs): for i, (a[i], b[i]) in enumerate(pairs): pass print('timeit') for _ in range(5): for f in f1, f2: t = timeit(lambda: f(a, b, pairs), number=1) print(f.__name__, '%.2f' % t, end=' ') print() print('default_timer') for _ in range(5): for f in f1, f2: t0 = default_timer() f(a, b, pairs) t = default_timer() - t0 print(f.__name__, '%.2f' % t, end=' ') print()
over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda