Форум сайта python.su
a=[ [0,2,4,6], [1,5,9,13], [3,10,17,19] ] for i in range (3): s=0 for j in range (4): s+=a[i][j] print(s)
Отредактировано FishHook (Ноя. 1, 2020 13:10:38)
Офлайн
a=[ [0,2,4,6], [1,5,9,13], [3,10,17,19] ] for i in a: print(max(i))
Офлайн
>>> a=[ ... [0,2,4,6], ... [1,5,9,13], ... [3,10,17,19] ... ] >>> max(map(max, a)) 19
Офлайн
Тут разные способы
>>> lst = [[0, 2, 4, 6], ... [1, 5, 9, 13], ... [3, 10, 17, 19]] >>> >>> max(sum(lst, [])) 19 >>> >>> max(max(i) for i in lst) 19 >>> >>> max(map(max, lst)) 19 >>> >>> >>> maximum = lst[0][0] >>> for row in lst: ... for col in row: ... if col > maximum: ... maximum = col ... >>> maximum 19 >>>
Офлайн
py.user.next
Тут разные способы
max(sum(lst, []))
Офлайн
max(sum(lst, []))
FishHookчем плох этот способ?
Вот за такой “способ” надо, конечно, увольнять
Офлайн
xam1816
а вы попробуйте проанализировать вычислительную сложность этого алгоритма
Офлайн
xam1816Он лучше этих всех способов
чем плох этот способ?
[guest@localhost py]$ python3 -mtimeit 'max(map(max, [[1, 2, 3], [4, 5, 6]]))'
1000000 loops, best of 3: 1.05 usec per loop
[guest@localhost py]$
[guest@localhost py]$ python3 -mtimeit 'max(max(i) for i in [[1, 2, 3], [4, 5, 6]])'
1000000 loops, best of 3: 1.49 usec per loop
[guest@localhost py]$
[guest@localhost py]$ python3 -mtimeit 'max(sum([[1, 2, 3], [4, 5, 6]], []))'
1000000 loops, best of 3: 0.853 usec per loop
[guest@localhost py]$
[guest@localhost py]$ python3 -mtimeit 'max(map(max, [[1, 2, 3], [4, 5, 6]] * 2))'
1000000 loops, best of 3: 1.66 usec per loop
[guest@localhost py]$
[guest@localhost py]$ python3 -mtimeit 'max(max(i) for i in [[1, 2, 3], [4, 5, 6]] * 2)'
100000 loops, best of 3: 2.6 usec per loop
[guest@localhost py]$
[guest@localhost py]$ python3 -mtimeit 'max(sum([[1, 2, 3], [4, 5, 6]] * 2, []))'
1000000 loops, best of 3: 1.2 usec per loop
[guest@localhost py]$
FishHookВо-во, проанализируй теперь
а вы попробуйте проанализировать вычислительную сложность этого алгоритма
Отредактировано py.user.next (Ноя. 2, 2020 22:30:24)
Офлайн
> Он лучше этих всех способов
Ну это не показатель, протестируй его на большом количестве вложенных списков.
Офлайн
RodegastТо же самое получается.
Ну это не показатель, протестируй его на большом количестве вложенных списков.
[guest@localhost ~]$ python3 -mtimeit 'max(map(max, [[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]]))'
100000 loops, best of 3: 2.68 usec per loop
[guest@localhost ~]$
[guest@localhost ~]$ python3 -mtimeit 'max(max(i) for i in [[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]])'
100000 loops, best of 3: 3.57 usec per loop
[guest@localhost ~]$
[guest@localhost ~]$ python3 -mtimeit 'max(sum([[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6]], []))'
100000 loops, best of 3: 2.4 usec per loop
[guest@localhost ~]$
Отредактировано py.user.next (Ноя. 3, 2020 00:11:07)
Офлайн