1. Python / Говнокод #10502

    −91

    1. 1
    2. 2
    3. 3
    >>>from itertools import chain, repeat
    >>>tuple(chain(tuple(chain(*tuple(repeat(tuple(chain((6,), repeat(7,5), (8,))),5)))),repeat(9, 7),repeat(10, 7)))
    (6, 7, 7, 7, 7, 7, 8, 6, 7, 7, 7, 7, 7, 8, 6, 7, 7, 7, 7, 7, 8, 6, 7, 7, 7, 7, 7, 8, 6, 7, 7, 7, 7, 7, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10)

    Запостил: Zapix, 31 Мая 2012

    Комментарии (3) RSS

    • Прям-таки реальный код?
      С такими цифрами, небось и tuple(([6]+[7]*5+[8])*5 + [9]*7 + [10]*7) будет быстрее.
      Ответить
      • может и не быстрее, но понятней. спасибо большое.
        Ответить
        • Ради спортивного интереса, проверил, itertools здесь пока не опрадавдан медленнее в ~4 раза:

          from timeit import Timer
          
          def test(code, setup=""):
              print Timer(code, setup=setup).timeit() 
              
          test( "tuple(chain(tuple(chain(*tuple(repeat(tuple(chain((6,), repeat(7,5), (8,))),5)))),repeat(9, 7),repeat(10, 7)))"
              , setup="from itertools import chain, repeat")
          
          test( "tuple(([6]+[7]*5+[8])*5 + [9]*7 + [10]*7)" )
          Ответить

    Добавить комментарий