Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 1, 2020 11:46:09

Gembiro
Зарегистрирован: 2020-11-01
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Двумерные массивы

   
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?

Отредактировано FishHook (Ноя. 1, 2020 13:10:38)

Офлайн

#2 Ноя. 1, 2020 15:11:30

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1371
Репутация: +  121  -
Профиль   Отправить e-mail  

Двумерные массивы

 a=[
   [0,2,4,6],
    [1,5,9,13],
    [3,10,17,19]
    ]
for i in a:
	print(max(i))

Офлайн

#3 Ноя. 1, 2020 15:39:50

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2756
Репутация: +  184  -
Профиль   Отправить e-mail  

Двумерные массивы

 >>> a=[
... [0,2,4,6],
... [1,5,9,13],
... [3,10,17,19]
... ]
>>> max(map(max, a))
19



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#4 Ноя. 1, 2020 20:32:31

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9882
Репутация: +  853  -
Профиль   Отправить e-mail  

Двумерные массивы

Тут разные способы

  
>>> 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
>>>



Офлайн

#5 Ноя. 2, 2020 11:26:45

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Двумерные массивы

py.user.next
Тут разные способы

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

 max(sum(lst, []))



Офлайн

#6 Ноя. 2, 2020 11:37:57

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1371
Репутация: +  121  -
Профиль   Отправить e-mail  

Двумерные массивы

  max(sum(lst, []))
FishHook
Вот за такой “способ” надо, конечно, увольнять
чем плох этот способ?

Офлайн

#7 Ноя. 2, 2020 17:05:31

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Двумерные массивы

xam1816
а вы попробуйте проанализировать вычислительную сложность этого алгоритма



Офлайн

#8 Ноя. 2, 2020 22:28:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9882
Репутация: +  853  -
Профиль   Отправить e-mail  

Двумерные массивы

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)

Офлайн

#9 Ноя. 2, 2020 22:52:06

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2756
Репутация: +  184  -
Профиль   Отправить e-mail  

Двумерные массивы

> Он лучше этих всех способов

Ну это не показатель, протестируй его на большом количестве вложенных списков.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#10 Ноя. 3, 2020 00:07:44

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9882
Репутация: +  853  -
Профиль   Отправить e-mail  

Двумерные массивы

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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version