Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 11, 2021 04:30:24

isd2020
Зарегистрирован: 2021-01-05
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Max значение в двух Tuple

Добрый день,
Даны два Tuple
tuple1, tuple2 = (123, ‘xyz’, ‘zara’, ‘abc’), (456, 700, 200)

Нужно найти маскимальное значение.
Вопро можно ли в функции MAX игнорировать не int значения ? Или как то по другому их оттуда убрать…

tuple1, tuple2 = (123, “xyz”, “zara”, “abc”), (456, 700, 200)
tuple3=tuple1+tuple2
print(“full tuple”)
for i in tuple3:
print(i)
print(max(tuple3))

Система выдает:

tuple1, tuple2 = (123, “xyz”, “zara”, “abc”), (456, 700, 200)
tuple3=tuple1+tuple2
print(“full tuple”)
for i in tuple3:
print(i)
print(max(tuple3))

Офлайн

#2 Янв. 11, 2021 06:25:27

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Max значение в двух Tuple

 def only_int(var):
    tmp = []
    for i in var:
        if type(i) == type(int()):
            tmp.append(i)
    return tuple(tmp)
tuple1, tuple2 = (123, "xyz", "zara", "abc"), (456, 700, 200)
tuple3 = only_int(tuple1) + only_int(tuple2)
print(f"tuple3 = {tuple3}")
print("full tuple")
for i in tuple3:
    print(i)
    print(max(tuple3))



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Янв. 11, 2021 06:25:42)

Офлайн

#3 Янв. 11, 2021 09:22:23

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Max значение в двух Tuple

AD0DE412 Ваш ответ слегка оффтопик, чем и сам я часто грешу.

ТС спрашивает:

isd2020
Вопро можно ли в функции MAX игнорировать не int значения ?
Формально надо было ответить просто

НЕТ

И сослаться на документацию, в которой игнорирование не предусмотрено.
https://docs.python.org/3/library/functions.html#max

Формально автор не просит показывать ему какое либо решение. Поэтому дальше идет мой оффтопик, появление которого можно объяснить тщеславием и некоторой многословностью предложенного выше решения. :)

Если использовать дополнительную информацию, например о положительности чисел, то можно переопределить ключи выбора максимума так что строки будут меньше любых чисел.
 >>> max(*("a","b",1),*(2,3,5),key =lambda x:x if type(x) is int else -1)
5

Заранее прошу простить за многословность и оффтопик в конце.

p.s.
Я просто пользуюсь последней возможностью поболтать, а то скоро нас всех совсем прикроют.
https://www.youtube.com/watch?v=osnSRsq63Pg



Отредактировано doza_and (Янв. 11, 2021 09:31:17)

Офлайн

#4 Янв. 12, 2021 07:12:47

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Max значение в двух Tuple

del



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Янв. 12, 2021 12:24:03)

Офлайн

#5 Янв. 12, 2021 12:09:55

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

Max значение в двух Tuple

AD0DE412

AD0DE412
из которого (я испытываю на этот счет полную уверенность) ни кто не в состоянии извлечь для себя какой либо урок или пользу я нахожусь в полном недоумении
Пост может и выглядит несколько сумбурно, но мысль, как мне кажется, донесена вполне толково. Давайте я попробую сказать то же самое другими словами. Прикол в том, что ваш код решает не ту задачу, которую поставил перед собой и перед нами Топик Стартер. Вопрос не в том, хорошо написан ваш код или плохо (хотя на мой взгляд плохо, но речь не об этом). Был задан вопрос, как с помощью функции max получить максимальное значение коллекции неоднородных по типу элементов. Вы предлагаете сначала построить коллекцию однородных по типу элементов, а потом применить к ней функцию max. Но согласитесь, это не то, чего желал автор поста. Функция max находит максимальный элемент за один проход коллекции, то есть алгоритмическая сложность O(n). Ваше решение на ровном месте увеличивает как количество проходов, так и потребление памяти на создание временной коллекции. Я вполне понимаю, что судя по содержанию стартового поста автор вопроса не задается такими высокими материями, и ваше решение имеет право на жизнь. Но… doza_and вам (и как мне кажется вполне корректно) намекнул, что на заданный вопрос есть буквальное решение, удовлетворяющее как вопросы производительности, так и конкретную суть вопроса - можно ли применять max к неконсистентным коллекциям. Ответ был дан в посте doza_and - да можно, для этого надо применить функцию-предикат. На что вы тут обиделись, мне не понятно.



Офлайн

#6 Янв. 12, 2021 12:15:45

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Max значение в двух Tuple

да все понятно и ни каких обид (серьезно)
если это так выглядит со стороны
то … звеняйте эээ каюсь итд итп
ps ну и наверное del



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Янв. 12, 2021 12:24:15)

Офлайн

#7 Янв. 12, 2021 16:43:01

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

Max значение в двух Tuple

isd2020
Вопро можно ли в функции MAX игнорировать не int значения ? Или как то по другому их оттуда убрать…
Сначала надо выбрать значения, а потом искать среди них максимум. Во-первых, код будет чище и понятнее, во-вторых, код будет быстрее. Если у тебя миллион строк там и десять чисел, то зачем перебирать этот миллион строк через предикат и сравнивать результат с чем-то, если эти строки вообще никакой роли не играют?

  
>>> import itertools
>>> 
>>> tuple1, tuple2 = (123, 'xyz', 'zara', 'abc'), (456, 700, 200)
>>> 
>>> tuples = (tuple1, tuple2)
>>> 
>>> numbers = filter(lambda i: type(i) is int, itertools.chain.from_iterable(tuples))
>>> 
>>> maxnum = max(numbers)
>>> maxnum
700
>>>



Офлайн

#8 Янв. 12, 2021 16:52:49

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Max значение в двух Tuple

Я думаю тут никто не обиделся все чуток повеселились. все совершенно без обид :)



Офлайн

#9 Янв. 12, 2021 17:02:01

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

Max значение в двух Tuple

doza_and
Я просто пользуюсь последней возможностью поболтать, а то скоро нас всех совсем прикроют
кстати смотрел этот видос,интересно,если примут закон,как будут закрывать просветительский контенет,если перед каждым видео будет упоминание в связи с законом о том что данное видео не просветительское, а просто научная фантастика, хотити верьте,хотити нет

Офлайн

#10 Янв. 12, 2021 17:58:36

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Max значение в двух Tuple

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



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version