> То же самое получается.
Большое количество, это хотя бы несколько тысяч + неплохо бы посмотреть на потребление памяти.
RodegastА я думаю, что и на несколько тысяч оно то же самое покажет.
Большое количество, это хотя бы несколько тысяч
RodegastЯ не думаю, что оно переполнит память. На каких-нибудь прошлых компьютерах если только.
неплохо бы посмотреть на потребление памяти
[guest@localhost ~]$ python3 -mtimeit '[1] * 10000'
10000 loops, best of 3: 25.6 usec per loop
[guest@localhost ~]$ python3 -mtimeit '[1] * 10000 + [1] * 10000'
10000 loops, best of 3: 184 usec per loop
[guest@localhost ~]$
>>> import time >>> def tst(foo): ... ti = time.time() ... foo() ... print(time.time() - ti) >>> test_set = [ list(range(x, x+1000)) for x in range(0, 100000, 1000) ] >>> tst(lambda: max(map(max, test_set))) 0.00341081619263 >>> tst(lambda: max(max(i) for i in test_set)) 0.00281500816345 >>> tst(lambda: max(sum(test_set, []))) 0.043771982193
RodegastЯ посмотрел, при росте массивов строк за сотню элементов, начинает значительно падать скорость у моего варианта. Но до сотни элементов в строке разницы между вариантами нет никакой практически.
Ну как бы твой вариант на порядок медленнее
>>> import time >>> >>> def tst(foo): ... ti = time.time() ... foo() ... print(time.time() - ti) ... >>> def make_set(r, c): ... return [list(range(x, x + 100)) for x in range(0, 100)] ... >>> test_set = make_set(100, 100) >>> tst(lambda: max(map(max, test_set))) 0.000705718994140625 >>> tst(lambda: max(max(i) for i in test_set)) 0.0007081031799316406 >>> tst(lambda: max(sum(test_set, []))) 0.0040013790130615234 >>> >>> >>> test_set = make_set(10, 10) >>> tst(lambda: max(map(max, test_set))) 0.0002560615539550781 >>> tst(lambda: max(max(i) for i in test_set)) 0.00026726722717285156 >>> tst(lambda: max(sum(test_set, []))) 0.0015683174133300781 >>> >>> >>> test_set = make_set(100, 10) >>> tst(lambda: max(map(max, test_set))) 0.0002536773681640625 >>> tst(lambda: max(max(i) for i in test_set)) 0.0002665519714355469 >>> tst(lambda: max(sum(test_set, []))) 0.0015172958374023438 >>> >>> >>> test_set = make_set(10, 100) >>> tst(lambda: max(map(max, test_set))) 0.00025463104248046875 >>> tst(lambda: max(max(i) for i in test_set)) 0.0002663135528564453 >>> tst(lambda: max(sum(test_set, []))) 0.0015218257904052734 >>>