Форум сайта python.su
Добрый день,
Даны два 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))
Офлайн
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))
Отредактировано AD0DE412 (Янв. 11, 2021 06:25:42)
Офлайн
AD0DE412 Ваш ответ слегка оффтопик, чем и сам я часто грешу.
ТС спрашивает:
isd2020Формально надо было ответить просто
Вопро можно ли в функции MAX игнорировать не int значения ?
>>> max(*("a","b",1),*(2,3,5),key =lambda x:x if type(x) is int else -1) 5
Отредактировано doza_and (Янв. 11, 2021 09:31:17)
Офлайн
del
Отредактировано AD0DE412 (Янв. 12, 2021 12:24:03)
Офлайн
AD0DE412
AD0DE412Пост может и выглядит несколько сумбурно, но мысль, как мне кажется, донесена вполне толково. Давайте я попробую сказать то же самое другими словами. Прикол в том, что ваш код решает не ту задачу, которую поставил перед собой и перед нами Топик Стартер. Вопрос не в том, хорошо написан ваш код или плохо (хотя на мой взгляд плохо, но речь не об этом). Был задан вопрос, как с помощью функции max получить максимальное значение коллекции неоднородных по типу элементов. Вы предлагаете сначала построить коллекцию однородных по типу элементов, а потом применить к ней функцию max. Но согласитесь, это не то, чего желал автор поста. Функция max находит максимальный элемент за один проход коллекции, то есть алгоритмическая сложность O(n). Ваше решение на ровном месте увеличивает как количество проходов, так и потребление памяти на создание временной коллекции. Я вполне понимаю, что судя по содержанию стартового поста автор вопроса не задается такими высокими материями, и ваше решение имеет право на жизнь. Но… doza_and вам (и как мне кажется вполне корректно) намекнул, что на заданный вопрос есть буквальное решение, удовлетворяющее как вопросы производительности, так и конкретную суть вопроса - можно ли применять max к неконсистентным коллекциям. Ответ был дан в посте doza_and - да можно, для этого надо применить функцию-предикат. На что вы тут обиделись, мне не понятно.
из которого (я испытываю на этот счет полную уверенность) ни кто не в состоянии извлечь для себя какой либо урок или пользу я нахожусь в полном недоумении
Офлайн
да все понятно и ни каких обид (серьезно)
если это так выглядит со стороны
то … звеняйте эээ каюсь итд итп
ps ну и наверное del
Отредактировано AD0DE412 (Янв. 12, 2021 12:24:15)
Офлайн
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 >>>
Офлайн
Я думаю тут никто не обиделся все чуток повеселились. все совершенно без обид :)
Офлайн
doza_andкстати смотрел этот видос,интересно,если примут закон,как будут закрывать просветительский контенет,если перед каждым видео будет упоминание в связи с законом о том что данное видео не просветительское, а просто научная фантастика, хотити верьте,хотити нет
Я просто пользуюсь последней возможностью поболтать, а то скоро нас всех совсем прикроют
Офлайн
xam1816ровно так же, как если перед порнофильмом писать, что это вовсе не порнография, а пособие для уроков полового воспитания, или как там оно называется сейчас в школах.
если перед каждым видео будет упоминание в связи с законом о том что данное видео не просветительское, а просто научная фантастика, хотити верьте,хотити нет
[code python][/code]
Офлайн