Форум сайта python.su
0
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)
Офлайн
124
a=[ [0,2,4,6], [1,5,9,13], [3,10,17,19] ] for i in a: print(max(i))
Офлайн
186
>>> a=[ ... [0,2,4,6], ... [1,5,9,13], ... [3,10,17,19] ... ] >>> max(map(max, a)) 19
Офлайн
857
Тут разные способы
>>> 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 >>>
Офлайн
568
py.user.next
Тут разные способы
max(sum(lst, []))
Офлайн
124
max(sum(lst, []))
FishHookчем плох этот способ?
Вот за такой “способ” надо, конечно, увольнять
Офлайн
568
xam1816
а вы попробуйте проанализировать вычислительную сложность этого алгоритма
Офлайн
857
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)
Офлайн
186
> Он лучше этих всех способов
Ну это не показатель, протестируй его на большом количестве вложенных списков.
Офлайн
857
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)
Офлайн