Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Веселая аркада с Печенькой для новогоднего настроения. Объезжайте препятствия, а подарки, варежки, конфеты и прочие приятности не объезжайте: они помогут набрать очки и установить новый рекорд.

Сноуборд

Спорт, Аркады, На ловкость

Играть

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Python3

983 поста сначала свежее
8
PythonGet
PythonGet
4 месяца назад
Программирование на python
Серия Python_get

Функция zip: как собрать всех котов на одно поле для игры⁠⁠

Представьте, что у вас есть несколько котов, и вы хотите собрать их на одном поле для игры. Каждый кот хочет поиграть с определенной игрушкой, но у вас разные списки котов и игрушек. Функция zip — как свисток, который помогает вам собрать всех котов и их игрушки в одну команду.

О чём речь?

Функция zip в Python — это инструмент, который объединяет несколько итерируемых объектов (списки, кортежи и т. д.) в один, создавая пары элементов с одинаковыми индексами. Это особенно полезно, когда нужно работать с связанными данными, например, списками имен и их возрастов.

Алгоритм

1. Создайте несколько списков или других итерируемых объектов.

2. Вызовите функцию zip() с этими объектами в качестве аргументов.

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

Историческая справка

Функция zip была добавлена в Python с его ранних версий и быстро стала популярной благодаря своей простоте и полезности. Она помогает программистам эффективно организовывать данные, подобно тому, как тренер собирает команду котов для игры.

Как работает

Представьте, что у вас есть несколько котов и игрушек. Функция zip — это как свисток, который собирает всех котов и их игрушки в одну команду, чтобы каждый знал, с чем играть.

Вот пример, как это выглядит в коде:

Функция zip: как собрать всех котов на одно поле для игры Программирование, Обучение, Python, Архиватор, Кот, Учеба, IT, Длиннопост

На выходе мы получаем: [('Мурзик', 'Мышка'), ('Барсик', 'Шарик'), ('Снежок', 'Кубик')]. Теперь каждый кот знает, с какой игрушкой играть!

Когда размеры зипуемых структур различаются

Если у вас есть списки разной длины, функция zip будет работать только до конца самого короткого списка. Например:

Функция zip: как собрать всех котов на одно поле для игры Программирование, Обучение, Python, Архиватор, Кот, Учеба, IT, Длиннопост

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

Нестандартные способы использования zip

1. Транспонирование матриц: Вы можете использовать zip для транспонирования двумерных списков (матриц). Например, если у вас есть матрица, и вы хотите поменять строки и столбцы местами.

Функция zip: как собрать всех котов на одно поле для игры Программирование, Обучение, Python, Архиватор, Кот, Учеба, IT, Длиннопост

2. Создание пар из двух списков: Если у вас есть два списка и вы хотите создать пары, где каждый элемент из первого списка будет связан с элементом из второго.

Функция zip: как собрать всех котов на одно поле для игры Программирование, Обучение, Python, Архиватор, Кот, Учеба, IT, Длиннопост

3. Сравнение элементов из двух списков: Вы можете использовать zip для сравнения элементов из двух списков.

Функция zip: как собрать всех котов на одно поле для игры Программирование, Обучение, Python, Архиватор, Кот, Учеба, IT, Длиннопост

Функция zip — это ваш верный помощник в мире программирования на Python, который поможет собрать данные в одной команде, как котов на игровом поле. Теперь вы знаете, как использовать zip, чтобы не запутаться в своих данных и эффективно работать с парами.

Какие у вас есть вопросы о Python, которые вы хотите обсудить в следующей статье? 🐾

И конечно же на канале https://t.me/pytonism уже готова новая задача ))

Показать полностью 5
[моё] Программирование Обучение Python Архиватор Кот Учеба IT Длиннопост
0
7
PythonGet
PythonGet
4 месяца назад
Программирование на python
Серия Python_get

Котики на карте: как функция map помогает нам управлять данными, как ловкий кот⁠⁠

Функция map – это как умный кот, который помогает вам быстро и эффективно обрабатывать данные. Она позволяет взять список и применить к каждому его элементу определенную операцию, превращая скучные данные в полезные результаты. В этом посте мы разберем, как использовать эту функцию, чтобы ваши данные не путались, как котята в клубке ниток!

Что такое функция map?

Функция map – это как волшебная палочка для ваших данных. Она позволяет взять список (или другой итерируемый объект) и применить к каждому его элементу определенную функцию. В итоге вы получаете новый список, где каждый элемент – это результат применения этой функции.

Алгоритм работы функции map

  1. Выберите функцию: Определите, какую операцию вы хотите выполнить над элементами.

  2. Создайте итератор: Подготовьте список, который вы будете преобразовывать.

  3. Примените функцию: Используйте map для применения вашей функции ко всем элементам списка.

  4. Получите результат: Превратите итератор в список, чтобы увидеть результат.

Историческая справка

Функция map появилась в языках программирования, вдохновленных функциональным программированием, таких как Lisp. Она быстро завоевала популярность благодаря своей простоте и универсальности. В Python эта функция стала частью стандартной библиотеки и используется программистами по всему миру, как коты используют свои когти для лазания по деревьям.

Как работает функция map?

Представьте, что у вас есть корзина с пушистыми котятами, и вы хотите покормить каждого из них. Вместо того чтобы подходить к каждому котенку по отдельности, вы берете большую миску с кормом и раздаете его всем сразу. Так же и функция map: она берет вашу функцию и применяет ее ко всем элементам списка, как будто раздает корм всем котятам в один миг.

Котики на карте: как функция map помогает нам управлять данными, как ловкий кот Программирование, Обучение, Python, Код, Функция, Карты, Кот, Длиннопост

Примеры нестандартного использования функции map

1. Преобразование строк: Вы можете использовать map, чтобы преобразовать все строки в верхний регистр. Это как если бы ваши котята вдруг решили стать настоящими львами и начали рычать!

Котики на карте: как функция map помогает нам управлять данными, как ловкий кот Программирование, Обучение, Python, Код, Функция, Карты, Кот, Длиннопост

2. Фильтрация данных: С помощью map можно также фильтровать данные, возвращая только те, которые соответствуют определенному условию. Это как если бы вы выбрали только тех котят, которые умеют ловить мышей!

Котики на карте: как функция map помогает нам управлять данными, как ловкий кот Программирование, Обучение, Python, Код, Функция, Карты, Кот, Длиннопост

3. Сложные преобразования: Вы можете использовать map для выполнения более сложных операций, например, объединения данных из нескольких источников. Это как если бы ваши котята решили объединить свои силы, чтобы поймать самую большую мышь в округе!

Котики на карте: как функция map помогает нам управлять данными, как ловкий кот Программирование, Обучение, Python, Код, Функция, Карты, Кот, Длиннопост

Функция map – это ваш верный помощник в мире программирования, который поможет вам быстро и эффективно обрабатывать данные. Она превращает скучные списки в яркие результаты, как котята превращают обычный день в настоящий праздник!

А какие интересные применения функции `map` вы можете придумать? Или, может быть, у вас есть вопросы о других функциях в Python? Давайте обсудим!

А на канале https://t.me/pytonism вас уже ждёт новая задача!

Показать полностью 4
[моё] Программирование Обучение Python Код Функция Карты Кот Длиннопост
2
11
DeniCroc
4 месяца назад
Программирование на python

Ответ на пост «Учу Python, день 25»⁠⁠1

имхо вроде как я понял ты из удавов. Питон не знаю но дам пару советов

1) не затягивай с теорией циклы и прочие базовые вещи можно учить вечно пока одно учишь другое забываешь

2) выбери часто используемые части языка и тупо сделай из бумаги (это важно) карточки и выучи ключевые функции ( совету перевести их значения с английского + язык подтянешь) на память например (все или основные функции строк, чисел , объекта и что там в питоне есть) и повторяй каждый день .

3) найди лектора на ютубе-рутубе и начина за ним делать какой то пет проект , модно вытянуть что то с трекеров вроде "Создание чего-то с нуля""

4)занимайся спортом реально нужно чтоб не выгореть

5)очень классно если найдеш второго такого как ты питониста и вы будите занимается по общему плану, делать и проверять проекты друг друга рассказывать друг другу выученные темы так реально лучше учится материал.

6) прости объяснения непонятных веще у нейросетки

7) когда боле мне подтянешь ищи ментора (можно при удаче и бесплатного найти платного) ментор даже платный гораздо лучше любых курсов он тебя побеседует найдет пробелы и посоветует как их справить. десяток другой таких консультаций дадут больше результатов чем курсы и чем черт не шутит может даже работу подкинут

Мотивация Обучение Программирование Дневник Python Длиннопост Ответ на пост Текст
1
12
PythonGet
PythonGet
4 месяца назад
Программирование на python
Серия Python_get

Магия reduce: как заставить хвосты складываться⁠⁠

Привет, начинающий программист! Сегодня мы поговорим о функции, которая может показаться магической, но на самом деле она просто очень умная. Это reduce. Представь себе кота, который собирает все свои игрушки в одну большую кучу. Вот это и есть суть reduce — она помогает объединить множество элементов в один, используя заданное правило.

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

Как работает reduce?

Давай разберёмся. reduce — это функция высшего порядка, которая берёт два аргумента: функцию и последовательность. Она применяет эту функцию к первым двум элементам последовательности, затем результат этой операции использует как первый аргумент для следующего элемента, и так до конца.

Представь, что у тебя есть пять котов, и ты хочешь узнать, сколько у них всего хвостов. Ты берёшь первого кота, считаешь его хвост, потом добавляешь хвост второго кота, потом третьего, и так далее. В итоге у тебя есть общее количество хвостов. Вот так работает reduce.

Алгоритм работы reduce:

  1. 🐾 Берём первый и второй элементы из последовательности.

  2. 🐾 Применяем функцию, которую ты передал в reduce, к этим элементам.

  3. 🐾 Результат сохраняем и используем его вместе со следующим элементом.

  4. 🐾 Повторяем, пока не обработаем все элементы.

  5. 🐾 Возвращаем итоговый результат.

Пример использования reduce

Вот как можно сложить все числа в списке:

Магия reduce: как заставить хвосты складываться Программирование, Обучение, Python, Кот, Длиннопост

Что здесь происходит?

  • Мы импортируем reduce из модуля functools.

  • Определяем функцию add_tails, которая просто складывает два числа.

  • Передаём эту функцию и список tails в reduce.

  • reduce начинает складывать хвосты: сначала 1+1, потом результат +1, и так далее.

Пример с более сложной задачей:

А что если мы хотим объединить строки? Например, у нас есть список имен котиков, и мы хотим получить одну строку с их именами, разделёнными запятыми.

Магия reduce: как заставить хвосты складываться Программирование, Обучение, Python, Кот, Длиннопост

Что здесь происходит?

  • Функция combine_names объединяет два имени с запятой.

  • reduce применяет эту функцию ко всем именам в списке, создавая одну строку.

Когда использовать reduce?

🐾 Когда нужно объединить элементы в один результат.

🐾 Когда хочется написать код компактно и элегантно.

🐾 Когда ты хочешь почувствовать себя магом программирования.

Но будь осторожен! Иногда reduce может сделать код менее читаемым, особенно если функция, которую ты передаёшь, слишком сложная. В таких случаях лучше использовать циклы или другие методы.

Историческая справка

reduce пришла к нам из функционального программирования. В языках вроде Haskell и Lisp такие функции — основа всего. В Python она была встроенной до версии 3.0, но потом её перенесли в модуль functools, чтобы не перегружать стандартную библиотеку.

Теперь вы знаете, как работает reduce и как её использовать. Попробуйте написать свои примеры! Например, найти произведение всех чисел в списке или посчитать длину всех строк в списке.

А на канале https://t.me/pytonism вас уже ждёт новая задача!

Показать полностью 2
[моё] Программирование Обучение Python Кот Длиннопост
0
4
sobolevn
4 месяца назад
Программирование на python

Как работает `__hash__` в tuple?⁠⁠

[моё] YouTube IT Обучение Программирование Python Видео Короткие видео
3
7
PythonGet
PythonGet
4 месяца назад
Программирование на python
Серия Python_get

Котики и функции высшего порядка: как приручить мощь Python⁠⁠

Представьте себе кота. Он может быть просто милым пушистиком, который мурлычет на диване, а может стать настоящим охотником, ловящим мышей. Так и функции в Python: они могут быть простыми, а могут стать мощным инструментом, если вы научитесь использовать их как функции высшего порядка. Сегодня мы разберёмся, что это за зверь такой, и как он может сделать ваш код элегантным, как прыжок кота на шкаф.

О чём речь?

Функции высшего порядка (higher-order functions) — это функции, которые могут принимать другие функции в качестве аргументов или возвращать их как результат. Это как если бы вы дали коту игрушку, а он вернул вам её с мышкой внутри. 🐭

Как это работает?

Функции высшего порядка — это основа функционального программирования. Они позволяют вам писать более компактный, читаемый и модульный код. Вместо того чтобы писать длинные циклы или повторяющийся код, вы можете передавать функции как аргументы, делая ваш код более выразительным.

Пример: у вас есть список чисел, и вы хотите удвоить каждое из них. Вместо того чтобы писать цикл, вы можете использовать функцию map, которая принимает другую функцию и применяет её ко всем элементам списка.

Котики и функции высшего порядка: как приручить мощь Python Программирование, Обучение, Python, Кот, Длиннопост

Что здесь происходит?

🐾 map — это функция высшего порядка, потому что она принимает другую функцию (double) в качестве аргумента.

🐾 double — это обычная функция, которая просто удваивает число.

🐾 map применяет double ко всем элементам списка numbers.

Историческая справка

Функции высшего порядка пришли к нам из функционального программирования, которое зародилось ещё в 1950-х годах. Один из первых языков, поддерживающих такие функции, — Lisp. Это как древний кот, который научил всех остальных ловить мышей. 🐾 В Python же они стали популярны благодаря своей простоте и универсальности.

Примеры использования в различных ситуациях

🐾 Фильтрация данных

Допустим, у вас есть список котов, и вы хотите оставить только тех, кто весит больше 5 кг. Используем filter:

Котики и функции высшего порядка: как приручить мощь Python Программирование, Обучение, Python, Кот, Длиннопост

🐾 Сортировка данных

Хотите отсортировать котов по весу? Используем sorted с функцией lambda:

Котики и функции высшего порядка: как приручить мощь Python Программирование, Обучение, Python, Кот, Длиннопост

🐾 Комбинирование функций

А теперь представьте, что вы хотите сначала отфильтровать тяжёлых котов, а потом отсортировать их по имени. Легко!

Котики и функции высшего порядка: как приручить мощь Python Программирование, Обучение, Python, Кот, Длиннопост

Приручите функции высшего порядка 🐾

Функции высшего порядка — это как универсальный кот, который может и мышей ловить, и на диване валяться. Они делают ваш код более выразительным, компактным и модульным. Вместо того чтобы писать длинные циклы или повторяющийся код, вы можете использовать такие инструменты, как map, filter, reduce и другие. Это не только экономит ваше время, но и делает код более читаемым для других разработчиков (и для вас через пару месяцев, когда вы забудете, что там написали).

Попробуйте использовать функции высшего порядка в своих проектах, и вы увидите, как они упрощают вашу жизнь. А если что-то непонятно — не стесняйтесь задавать вопросы! 🐾

А если хотите стать мастером функций высшего порядка, переходите на https://t.me/pytonism и читайте!))

Показать полностью 4
[моё] Программирование Обучение Python Кот Длиннопост
0
6
smart89
4 месяца назад

Разработчик Python⁠⁠

Приходит сейчас на консультацию дедок, лет за 70.
- Вляпался я в лабуду такую. В интернете увидел рекламу urban university. Дают государственные гранты на обучение.

Смысл такой. Оформляешь кредит, а институт за тебя платит 6 месяцев.

-Так вот, 4 месяца они проплатили, а вот остальные 2 платежа нет. Плачу сам. Что мне делать?

К сожалению дедушка пришел без документов, помочь не чем. Надеюсь распечатает договор и конечно ему помогу.

Но больше меня поразило другое.

Дедушке лет уже очень много, а стремление к новым знаниям никуда не делось!
Мне бы его стремление!

Кстати учится он на разработчика Python . 🐍

[моё] Разработчики Python Учеба Без рейтинга Текст
7
10
hypo69
hypo69
4 месяца назад
Программирование на python
Серия Вопросы собеседований - разработчик python 1 - 100

Вопросы собеседований. 61 - 70⁠⁠

Вопросы 👉 1 - 10
Вопросы 👉 11 - 20
Вопросы 👉 21 - 30
Вопросы 👉 31 - 40
Вопросы 👉 41 - 50
Вопросы 👉 51 - 60


Вопросы

Вопрос 61.
Что произойдет при добавлении нового узла со значением 25 в бинарное дерево поиска (BST), представленное на изображении ниже?

Вопросы собеседований. 61 - 70 Гайд, Программирование, Python, Длиннопост
  • A. Узел 25 будет добавлен как левый потомок узла 40.

  • B. Узел 25 будет добавлен как правый потомок узла 20.

  • C. Узел 25 будет добавлен как правый потомок узла 40.

  • D. Узел 25 не будет добавлен, так как такой узел уже существует в дереве.


Вопрос 62.
Как функция enumerate() улучшает функциональность цикла в Python при работе со списком?

  • A. Она переворачивает список для перебора в обратном порядке.

  • B. Функция добавляет счетчик к каждой итерации цикла, предоставляя текущую позицию индекса наряду со значением.

  • C. Она умножает каждый элемент на его номер индекса для получения нового списка.

  • D. Enumerate блокирует список для предотвращения изменений во время итерации.


Вопрос 63.
Что такое функциональный паттерн проектирования "Map" (отображение) и как он используется в Python? Приведите пример использования этого паттерна для преобразования элементов коллекции.

  • A. Паттерн "Map" - это способ сортировки элементов в коллекции, используя заданную функцию.

  • B. Паттерн "Map" - это способ фильтрации элементов в коллекции, используя заданное условие.

  • C. Паттерн "Map" - это способ объединения элементов коллекции в одно значение, используя заданную функцию.

  • D. Паттерн "Map" - это способ применения функции к каждому элементу коллекции и создания новой коллекции из полученных результатов.



Вопрос 64. Какой результат выведет на экран следующий код Python?

Вопросы собеседований. 61 - 70 Гайд, Программирование, Python, Длиннопост
  • A. 7

  • B. 6

  • C. 5

  • D. 4


Вопрос 65.
Какой будет результат выполнения следующего кода?

Вопросы собеседований. 61 - 70 Гайд, Программирование, Python, Длиннопост
  • A. [1, 2, 3] [1, 2, 3, 4, 5]

  • B. [1, 2, 3, 4] [1, 2, 3, 4, 5]

  • C. [1, 2, 3, 4, 5] [1, 2, 3, 4, 5]

  • D. [1, 2, 3] [1, 2, 3, 5]


Вопрос 66.
Какой тип данных был бы наиболее подходящим для хранения уникальных идентификаторов пользователей (user IDs) в Python?

  • A. Список (List)

  • B. Словарь (Dictionary)

  • C. Множество (Set)

  • D. Кортеж (Tuple)


Вопрос 67.
В Python, каков результат преобразования типов, если вы используете функцию int() для числа с плавающей точкой, такого как 7.7?

  • A. Она округляет число до ближайшего целого числа.

  • B. Она отбрасывает десятичную часть и возвращает целое число.

  • C. Она возвращает ближайшее меньшее целое число, если десятичная дробь ниже .5, и верхнее, если выше.

  • D. Это вызывает ValueError, если явно не обработано исключение.


Вопрос 67.
Дан массив целых чисел nums, содержащий n элементов, и целое число k. Разработайте алгоритм для поиска непрерывного подмассива (subarray) длины k в массиве nums, который имеет максимальное среднее значение. Возвратите это максимальное среднее значение.

Примеры:

Ввод: nums = [1,12,-5,-6,50,3], k = 4
Вывод: 12.75000

Ввод: nums = [5], k = 1
Вывод: 5.00000

  • A. Для решения задачи нужно использовать жадный алгоритм и выбирать на каждом шаге самый большой элемент из списка.

  • B. Для решения задачи нужно использовать алгоритм поиска в ширину (BFS).

  • C. Для решения задачи нужно использовать метод "скользящего окна" для эффективного поиска максимального среднего.

  • D. Для решения задачи, необходимо использовать рекурсивный обход всех вариантов.


Вопрос 69.
Что такое "Immutability" (иммутабельность) в контексте функционального программирования, и какие преимущества она предоставляет? Приведите примеры изменяемых и неизменяемых объектов в Python и объясните, как использование иммутабельности может упростить код.

  • A. Иммутабельность - это концепция, которая означает, что объекты можно изменять только в одном месте, при их создании, но не после.

  • B. Иммутабельность - это использование объектов только для чтения.

  • C. Иммутабельность - это концепция, которая заключается в избегании изменяемых данных и использовании только неизменяемых, что упрощает код и уменьшает вероятность побочных эффектов.

  • D. Иммутабельность - это паттерн проектирования для создания только одного объекта определенного типа, без возможности изменения его состояния.


Вопрос 70.
Что такое композиция функций, и как ее можно реализовать в Python? Приведите пример кода, демонстрирующий композицию функций, где результат одной функции передается в качестве аргумента другой.

  • A. Композиция функций - это процесс создания объектов из классов, использующих значения, полученные из других объектов.

  • B. Композиция функций - это процесс, когда функция вызывает себя несколько раз.

  • C. Композиция функций - это комбинация двух или более функций, при которой результат выполнения одной функции передается в качестве аргумента другой функции.

  • D. Композиция функций - это способ создания функций, которые могут выполняться в отдельных потоках.


Ответы

61. Правильный ответ: B

Объяснение:

Бинарное дерево поиска (BST, Binary Search Tree) - это древовидная структура данных, где для каждого узла выполняются следующие свойства:

  • Значение всех узлов в левом поддереве меньше значения узла.

  • Значение всех узлов в правом поддереве больше значения узла.

  • Оба левое и правое поддерево тоже являются BST.

При добавлении нового узла в BST, алгоритм должен соблюдать эти свойства для обеспечения корректности бинарного дерева.

  • Процесс добавления узла со значением 25:

    1. Начало с корня: Начинаем поиск места для добавления нового узла с корня (30).

    2. Сравнение с корнем: Так как 25 меньше 30, переходим в левое поддерево.

    3. Сравнение с узлом 20: Так как 25 больше 20, то переходим в правое поддерево от узла 20.

    4. Правый потомок 20: Узел 20 не имеет правого потомка, поэтому узел со значением 25 будет добавлен как правый потомок узла 20.

Разбор вариантов:

  • A. Узел 25 будет добавлен как левый потомок узла 40.: Неправильно, так как 25 меньше 40.

  • B. Узел 25 будет добавлен как правый потомок узла 20.: Правильно.

  • C. Узел 25 будет добавлен как правый потомок узла 40.: Неправильно.

  • D. Узел 25 не будет добавлен, так как такой узел уже существует в дереве.: Неправильно. В данном случае узла 25 нет, так как это дерево поиска и одинаковых элементов не может быть.

В результате:

  • При добавлении нового узла в BST необходимо соблюдать свойства бинарного дерева поиска.

  • Правильная вставка узлов обеспечивает возможность быстрого поиска в BST.

Таким образом, правильным ответом является B. Узел 25 будет добавлен как правый потомок узла 20.


62. Правильный ответ: B

Объяснение:

Функция enumerate() в Python предназначена для упрощения итерации по последовательности (например, списку) с одновременным доступом к индексу и значению каждого элемента.

  • Вариант A не верен: enumerate() не переворачивает список. Для этого используется метод reverse().

  • Вариант B верен: enumerate() добавляет счетчик (индекс) к каждому элементу, предоставляя кортеж (индекс, значение) на каждой итерации.

  • Вариант C не верен: enumerate() не меняет значения элементов и не создает новый список.

  • Вариант D не верен: enumerate() не блокирует список и не предотвращает изменения во время итерации.

Как работает enumerate():

  1. Функция enumerate() принимает в качестве аргумента итерируемый объект (список, кортеж, строку и т. д.).

  2. Она возвращает объект-итератор, который выдаёт кортежи, состоящие из двух элементов: индекса и значения элемента.

  3. Индексы начинаются с 0 по умолчанию, но можно изменить стартовый индекс, передав необязательный параметр start.

Преимущества использования enumerate():

  • Доступ к индексу: Упрощает доступ к индексу элемента в цикле, что полезно, когда нужно обрабатывать элемент, зная его положение.

  • Упрощение кода: Позволяет избежать ручного создания и отслеживания счетчика, делая код более читабельным.

  • Эффективность: enumerate часто более эффективен, чем ручное отслеживание индекса, поскольку Python автоматически оптимизирует этот процесс.

Пример:

Вопросы собеседований. 61 - 70 Гайд, Программирование, Python, Длиннопост

В результате:

  • При использовании enumerate(), цикл автоматически предоставляет индекс и значение каждого элемента списка.

  • При использовании enumerate(my_list, start=1) индексы начинаются с 1.

Таким образом, вариант B является правильным ответом.


63. Правильный ответ: D

Объяснение:

Паттерн "Map" (отображение) — это распространенный функциональный паттерн, который применяется для преобразования каждого элемента в коллекции (например, список, кортеж) в новый элемент с использованием определенной функции. Результатом является новая коллекция, содержащая преобразованные элементы.

  • Основные концепции паттерна "Map":

    • Применение функции: Функция "отображения" применяется к каждому элементу входной коллекции.

    • Новая коллекция: Результаты применения функции сохраняются в новой коллекции.

    • Сохранение порядка: Обычно сохраняется порядок элементов (если это применимо к структуре данных).

    • Использование с функциями высшего порядка: Часто реализуется с помощью функций высшего порядка, таких как map() в Python.

  • Как работает паттерн "Map":

    1. Принимает входную коллекцию элементов.

    2. Принимает функцию преобразования.

    3. Применяет функцию к каждому элементу коллекции.

    4. Собирает результаты преобразования в новую коллекцию.

    5. Возвращает новую коллекцию с преобразованными значениями.

Примеры:

Вопросы собеседований. 61 - 70 Гайд, Программирование, Python, Длиннопост

Разбор примеров:

  1. Использование с обычной функцией square:

    • Функция square(x) возводит число в квадрат.

    • Функция map(square, numbers) применяет функцию square к каждому элементу списка numbers и возвращает итератор. Затем итератор преобразовывается в список.

    • Выводит исходный и новый списки.

  2. Использование с лямбда функцией:

    • Лямбда-функция lambda x: x ** 3 вычисляет куб числа.

    • Функция map(lambda x: x ** 3, numbers) применяет лямбду к каждому элементу списка numbers и возвращает итератор. Затем итератор преобразовывается в список.

    • Выводит исходный и новый списки.

  3. Использование map с преобразованием строк:

    • Лямбда-функция lambda x: x.upper() переводит строку в верхний регистр.

    • Функция map(lambda x: x.upper(), strings) применяет лямбда-функцию к каждой строке в списке strings.

    • Выводит исходный и новый списки.

  4. Использование map с несколькими коллекциями:

    • Лямбда-функция lambda x,y: x+y суммирует два числа.

    • Функция map(lambda x,y: x+y, list1, list2) применяет лямбда-функцию к каждому элементу в списках list1 и list2 (берет элементы с одинаковым индексом).

    • Выводит исходные списки и список сумм.

  5. Использование map c функцией, которая возвращает кортеж:

    • Лямбда функция lambda s, i: (i, s) создает пару (индекс, значение) для каждой строки в списке.

    • функция map создает список кортежей.

    • Выводит исходный список и список с проиндексированными строками.

  6. Использование map с различными типами данных:

    • Лямбда функция lambda x: type(x) возвращает тип объекта.

    • Функция map применяет эту функцию к каждому элементу в списке, что приводит к созданию списка типов.

    • Выводит исходный список и список типов.

Разбор вариантов:

  • A. Паттерн "Map" - это способ сортировки элементов в коллекции, используя заданную функцию.: Неправильно. Сортировка - это другая операция.

  • B. Паттерн "Map" - это способ фильтрации элементов в коллекции, используя заданное условие.: Неправильно. Фильтрация используется для выборки элементов по условию.

  • C. Паттерн "Map" - это способ объединения элементов коллекции в одно значение, используя заданную функцию.: Неправильно. Это описание паттерна Reduce.

  • D. Паттерн "Map" - это способ применения функции к каждому элементу коллекции и создания новой коллекции из полученных результатов.: Правильно.

В результате:

  • Паттерн "Map" позволяет создавать новый список путем преобразования элементов исходного списка с помощью функции преобразования.

  • Используя функцию map и лямбда-функции можно легко реализовать паттерн Map.

  • Функция map позволяет применять функцию к нескольким спискам одновременно.

  • Функция map может использоваться с функциями, которые возвращают любое значение (в том числе и кортежи), и может принимать любые типы данных.

Таким образом, правильным ответом является D. Паттерн "Map" - это способ применения функции к каждому элементу коллекции и создания новой коллекции из полученных результатов.


64. Правильный ответ: B

Объяснение:

Этот код демонстрирует работу замыканий (closures) и областей видимости переменных в Python.

  1. Функция outer_func(y):

    • Принимает аргумент y (в примере равен 3).

    • Инициализирует локальную переменную x значением 2.

    • Определяет вложенную функцию inner_func().

      • inner_func() "замыкается" над переменными из области видимости outer_func и возвращает сумму x + y.

    • Изменяет x на x + 2, то есть x теперь равен 4.

    • Изменяет y на 2.

    • Возвращает функцию inner_func как результат.

  2. Вызов outer_func(3):

    • Вызывает outer_func с аргументом 3.

    • Возвращаемая функция inner_func присваивается переменной results.

    • Важно отметить, что вложенная функция inner_func запоминает не значения переменных x и y в момент определения, а сами переменные, и они подставятся в момент вызова inner_func.

  3. Вызов results():

    • Вызывает функцию inner_func, которая была возвращена из outer_func и присвоена results.

    • Внутри inner_func:

      • x имеет значение 4, которое было вычислено в outer_func перед ее возвращением.

      • y имеет значение 2, которое было присвоено в outer_func перед ее возвращением.

    • Возвращается значение x + y = 4 + 2 = 6.

  4. Вывод: print(results()) выводит результат вызова inner_func ,то есть 6.

Разбор вариантов:

  • A. 7: Неправильно.

  • B. 6: Правильно.

  • C. 5: Неправильно.

  • D. 4: Неправильно.

В результате:

  • Вложенные функции могут захватывать переменные из области видимости родительской функции - это называется замыканием.

  • Захват переменной происходит по ссылке, а не по значению. В момент вызова inner_func переменные x и y будут иметь последнее присвоенное значение.

Таким образом, правильным ответом является B. 6.


65. Правильный ответ: B

Объяснение:

Этот код демонстрирует разницу между мутированием списка и созданием нового списка, а также то, как это влияет на переменные в Python.

  1. Изначальный список: my_list инициализируется как [1, 2, 3].

  2. Функция modify_list:

    • Принимает список lst в качестве аргумента.

    • lst.append(4): Метод append мутирует список, добавляя 4 в конец. Теперь lst (изначально my_list) стал [1, 2, 3, 4].

    • lst = lst + [5]: Операция + создает новый список, объединяя lst c [5]. Результат присваивается локальной переменной lst внутри функции. Это не изменяет my_list в глобальной области видимости.

    • Возвращается новый список lst.

  3. Вызов modify_list: Функция вызывается с my_list как аргументом. Возвращаемый новый список присваивается переменной new_list.

  4. Вывод:

    • print(my_list) выведет [1, 2, 3, 4], так как my_list был мутирован внутри функции.

    • print(new_list) выведет [1, 2, 3, 4, 5], который является новым списком, созданным в функции и возвращенным.

Дополнительные замечания:

  • Метод append изменяет исходный список (мутирует его).

  • Оператор + создает новый список, не изменяя исходные.

  • Присваивание внутри функции создает локальную переменную, которая никак не влияет на переменную с тем же именем, объявленную за пределами этой функции.

  • Понимание разницы между мутацией и созданием новых объектов важно для предотвращения нежелательных побочных эффектов при работе со списками в Python.


66. Правильный ответ: C

Объяснение:

В Python для хранения уникальных элементов наиболее подходит тип данных set (множество).

  • Вариант A не верен: Списки могут содержать повторяющиеся элементы и сохраняют порядок элементов.

  • Вариант B не верен: Словари хранят пары ключ-значение, и хотя ключи должны быть уникальными, для хранения просто уникальных идентификаторов пользователей это неэффективно.

  • Вариант C верен: Множества хранят только уникальные элементы в произвольном порядке и не поддерживают дубликаты.

  • Вариант D не верен: Кортежи являются неизменяемыми и могут хранить повторяющиеся элементы.

Почему множество (set) подходит для хранения уникальных идентификаторов:

  1. Уникальность элементов: Множества автоматически удаляют дубликаты, что идеально подходит для хранения уникальных идентификаторов.

  2. Быстрая проверка наличия: Проверка наличия элемента в множестве выполняется очень быстро (в среднем O(1)), благодаря реализации на основе хеш-таблицы.

  3. Неупорядоченность: Множества не гарантируют сохранение порядка элементов, что является приемлемым для идентификаторов пользователей.

  4. Изменяемость: Множества могут быть изменены (добавлять или удалять элементы).

Пример:

Вопросы собеседований. 61 - 70 Гайд, Программирование, Python, Длиннопост

В результате:

  • При создании множества дубликаты удаляются, поэтому "user123" встречается только один раз.

  • Элементы множества не упорядочены, поэтому порядок их вывода может не совпадать с порядком добавления.

  • Операция in проверки наличия элемента в множестве выполняется быстро.

Таким образом, вариант C является верным.


67. Правильный ответ: B

Объяснение:

Функция int() в Python используется для преобразования значения к целому числу. При преобразовании числа с плавающей точкой (float) в целое число (int), функция int() отбрасывает десятичную часть, а не округляет.

  • Вариант A не верен: int() не выполняет округление, а отбрасывает десятичную часть.

  • Вариант B верен: int() именно отбрасывает десятичную часть и возвращает целое число.

  • Вариант C не верен: int() не выполняет округление по правилам "меньше .5 в меньшую сторону, больше - в большую".

  • Вариант D не верен: Функция int() может конвертировать строку, представляющую целое число, к integer типу, но не строку с плавающей точкой (например "7.7") и не вызовет ValueError при конвертации числа float в int

Пример:

Вопросы собеседований. 61 - 70 Гайд, Программирование, Python, Длиннопост

В результате:

  • При преобразовании 7.7 с помощью int(), возвращается 7, десятичная часть отброшена.

  • При преобразовании -7.7, возвращается -7.

  • При преобразовании 7.2, возвращается 7.

Таким образом, вариант B является правильным ответом.


68. Правильный ответ: C

Объяснение:

Для решения задачи поиска подмассива с максимальным средним значением и фиксированной длиной k в массиве чисел, оптимальным является применение метода "скользящего окна". Этот метод обеспечивает линейную временную сложность O(n), позволяя обойти массив только один раз.

  • Алгоритм (скользящее окно):

    1. Инициализация:

      • Вычисляем сумму первых k элементов массива, и сохраняем их в переменной current_sum.

      • Максимальная сумма max_sum инициализируется значением current_sum.

    2. Скользящее окно:

      • Начиная с k-го элемента до конца массива (для индекса i), поддерживаем окно размера k:

        • Из current_sum вычитаем элемент из начала окна (nums[i-k]). * К current_sum добавляем новый элемент в конце окна nums[i].

      • Сравниваем current_sum с max_sum и если больше то max_sum = current_sum

    3. Возвращаем результат: После перебора всех элементов, возвращаем max_sum / k, что соответствует максимальному среднему значению подмассива.

  • Преимущества алгоритма:

    • Линейная сложность: Обеспечивает временную сложность O(n).

    • Постоянная память: Использует постоянное количество дополнительной памяти.

    • Простота: Легок в реализации.

Пример:

Вопросы собеседований. 61 - 70 Гайд, Программирование, Python, Длиннопост

Разбор вариантов:

  • A. Для решения задачи нужно сначала отсортировать массив capacity, затем последовательно заполнять сумки, пока не закончатся камни.: Неправильно.

  • B. Для решения задачи нужно использовать алгоритм поиска в ширину (BFS).: Неправильно. BFS не является подходящим для этой задачи.

  • C. Для решения задачи нужно использовать метод "скользящего окна" для эффективного поиска максимального среднего.: Правильно.

  • D. Для решения задачи нужно использовать только рекурсивный алгоритм.: Неправильно. Рекурсивный алгоритм не подходит.

В результате:

  • Алгоритм скользящего окна позволяет эффективно находить подмассив с максимальным средним значением.

  • Итерируясь по массиву только один раз достигается сложность O(n)

  • Результирующее среднее значение будет получено с помощью деления максимальной суммы на размер подмассива k

Таким образом, правильным ответом является C. Для решения задачи нужно использовать метод "скользящего окна" для эффективного поиска максимального среднего.


69. Правильный ответ: C

Объяснение:

Иммутабельность (immutability) — это концепция в программировании, особенно в функциональном программировании, которая заключается в избегании изменяемых данных. Иммутабельные объекты — это объекты, которые не могут быть изменены после создания. При изменении такого объекта фактически создаётся новый объект с измененным значением, а старый остается неизменным.

  • Основные принципы иммутабельности:

    • Неизменяемость: Объекты не могут быть изменены после создания.

    • Новый объект при изменении: Любая операция, которая кажется изменяет объект, на самом деле создаёт новый объект с измененными значениями.

    • Отсутствие побочных эффектов: Функции, работающие с иммутабельными объектами, не изменяют состояние существующих данных и не создают побочных эффектов, если не создавать новые переменные.

    • Простота и предсказуемость: Код становится более простым и предсказуемым, так как не происходит нежелательного изменения объектов.

  • Преимущества иммутабельности:

  • Безопасность: Исключение побочных эффектов, снижение вероятности ошибок, связанных с одновременным изменением объектов из разных частей программы. * Упрощение отладки: Код, который не изменяет данные, намного проще отлаживать. * Многопоточность: Легче работать с иммутабельными объектами в многопоточной среде, поскольку не нужно беспокоиться о гонках данных.

  • Иммутабельные и изменяемые объекты в Python:

    • Иммутабельные объекты: * Числа (int, float, complex). * Строки (str). * Кортежи (tuple). * frozenset - не изменяемые множества. * Булевы значения (bool).

    • Изменяемые объекты:

      • Списки (list).

      • Словари (dict).

      • Множества (set).

Примеры:

Вопросы собеседований. 61 - 70 Гайд, Программирование, Python, Длиннопост

Разбор примеров:

  1. Пример иммутабельных объектов:

    • string2 = string1.upper() создает новую строку string2 в верхнем регистре, а string1 не меняется.

    • tuple2 = tuple1 + (4,5) создает новый кортеж tuple2, а tuple1 не меняется.

  2. Пример изменяемых объектов:

    • list2 = list1 присваивает list2 ссылку на список, который хранится в list1, то есть, не создается новый список. * list1[0] = 10 изменяет оригинальный список, и поэтому все переменные, которые ссылаются на него, изменятся тоже.

    • list2 = list1.copy() создает новый список, и он не будет изменен после изменения list1

Разбор вариантов:

  • A. Иммутабельность - это концепция, которая означает, что объекты можно изменять только в одном месте, при их создании, но не после.: Неправильно.

  • B. Иммутабельность - это использование объектов только для чтения.: Неправильно. Иммутабельные объекты не могут быть изменены совсем, а не только для чтения.

  • C. Иммутабельность - это концепция, которая заключается в избегании изменяемых данных и использовании только неизменяемых, что упрощает код и уменьшает вероятность побочных эффектов.: Правильно.

  • D. Иммутабельность - это паттерн проектирования для создания только одного объекта определенного типа, без возможности изменения его состояния.: Неправильно.

В результате:

  • Иммутабельность способствует созданию более безопасного, предсказуемого и простого кода.

  • Иммутабельные объекты не могут быть изменены после создания, что позволяет избежать ошибок связанных с изменением состояния.

Таким образом, правильным ответом является C. Иммутабельность - это концепция, которая заключается в избегании изменяемых данных и использовании только неизменяемых, что упрощает код и уменьшает вероятность побочных эффектов.


70. Правильный ответ: C

Объяснение:

Композиция функций (function composition) — это функциональный паттерн, который позволяет объединять две или более функции таким образом, что результат одной функции передается в качестве аргумента другой функции. Это позволяет создавать новые, более сложные функции, из простых и переиспользуемых.

  • Основные концепции композиции функций:

    • Цепочка вычислений: Результат одной функции становится входным значением для следующей функции.

    • Последовательное применение: Функции применяются друг за другом в определенном порядке.

    • Новая функция из простых: Композиция позволяет создавать сложные функции из более простых.

    • Возможность повторного использования: Композиция позволяет переиспользовать ранее созданные функции.

  • Реализация композиции в Python:

    • В Python композицию можно реализовать вручную с помощью вложенных вызовов функций или с помощью оператора | (начиная с Python 3.9), или с помощью использования лямбда-функций.

Пример (из текста вопроса):

Вопросы собеседований. 61 - 70 Гайд, Программирование, Python, Длиннопост

Описание примера:

  1. double(x): Функция, которая умножает число x на 2.

  2. square(x): Функция, которая возводит число x в квадрат.

  3. compose(f, g): Функция, реализующая композицию.

    • Принимает функции f и g в качестве аргументов.

    • Возвращает лямбда-функцию lambda x: f(g(x)), которая сначала применяет функцию g к аргументу x, а затем применяет функцию f к результату g(x).

  4. composed = compose(square, double): Создается новая функция composed, которая является композицией square и double. Она эквивалента lambda x : square(double(x)).

  5. composed(5): Принимает аргумент 5 и выполняет функции в порядке (5*2)**2, т.е. double(5) (что равно 10) и затем square(10) (что равно 100).

Другие примеры:

Вопросы собеседований. 61 - 70 Гайд, Программирование, Python, Длиннопост

Разбор вариантов:

  • A. Композиция функций - это процесс создания объектов из классов, использующих значения, полученные из других объектов.: Неправильно. Композиция функций не связана с созданием объектов из классов.

  • B. Композиция функций - это процесс, когда функция вызывает себя несколько раз.: Неправильно. Это описание рекурсии.

  • C. Композиция функций - это комбинация двух или более функций, при которой результат выполнения одной функции передается в качестве аргумента другой функции.: Правильно.

  • D. Композиция функций - это способ создания функций, которые могут выполняться в отдельных потоках.: Неправильно.

В результате:

  • Композиция функций позволяет создавать более сложные операции из простых.

  • Использование композиции способствует модульности и переиспользованию кода.

Таким образом, правильным ответом является C. Композиция функций - это комбинация двух или более функций, при которой результат выполнения одной функции передается в качестве аргумента другой функции.

Показать полностью 10
[моё] Гайд Программирование Python Длиннопост
2
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии