Найти - Пользователи
Полная версия: Двумерные массивы
Начало » Python для новичков » Двумерные массивы
1 2
Gembiro
   
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?
xam1816
 a=[
   [0,2,4,6],
    [1,5,9,13],
    [3,10,17,19]
    ]
for i in a:
	print(max(i))
Rodegast
 >>> a=[
... [0,2,4,6],
... [1,5,9,13],
... [3,10,17,19]
... ]
>>> max(map(max, a))
19
py.user.next
Тут разные способы
  
>>> 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
>>>
FishHook
py.user.next
Тут разные способы

Вот за такой “способ” надо, конечно, увольнять

 max(sum(lst, []))
xam1816
  max(sum(lst, []))
FishHook
Вот за такой “способ” надо, конечно, увольнять
чем плох этот способ?
FishHook
xam1816
а вы попробуйте проанализировать вычислительную сложность этого алгоритма
py.user.next
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
> Он лучше этих всех способов

Ну это не показатель, протестируй его на большом количестве вложенных списков.
py.user.next
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 ~]$
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB