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)
как сделать чтобы выводилось наибольшее значение s?
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)
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Он лучше этих всех способов
чем плох этот способ?
[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Во-во, проанализируй теперь
а вы попробуйте проанализировать вычислительную сложность этого алгоритма
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 ~]$