Вопрос №372 от пользователя Тимофей в уроке «Типы-коллекции», курс «Введение в Python»

Тимофей

Намекните как task2 решить Есть конечно dict(zip()) , но как быть с None Нагуглил ``` dict(itertools.zip_longest(keys, vals, fillvalue=None)

Правда это к нашему уроку не относится :)
7 0

Ivan Grishaev

Есть несколько способов.

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

Можно по-другому: собрать словарь, получить список его ключей, составить множество, вычесть его из множества исходных ключей. Получите разницу ключей. Пройтись по ней в цикле, на каждом шаге добавить к словарю ключ со значением None.

3

Тимофей

Если эти задания рассчитаны на более опытных, нежели на начинающих. То наверное все в порядке, а так неплохо было бы хоть какие то намеки для старта. По крайней мере ваш предыдущий намек мне помог )

none = (None,)
    cc = len(keys)
    dd = len(vals)
    if dd < cc:
        ee = cc - dd
        vals.extend(none * ee)
        xx = dict(zip(keys,vals))
    else:
        xx = dict(zip(keys,vals))
    return xx

Вот такой ужас, но хотя бы что то ) И то благодаря вашей подсказке, а так бы я думаю и не справился. В итоге task3, task4 и 5 без вас никак, и в следующих уроках думаю не лучше, но если принципиально надо решать без подсказок. Что же надо так надо :) Вернусь к решению как наберусь знаний. PS. Теория в видео подана на отлично.

2

Ivan Grishaev

Не ужас, только надо подчистить, например, два раза копипаста xx = dict(zip(keys,vals)) и имена переменных ясней. Возможно, задания я упрощу или добавлю подсказки. Большое спасибо за отзывы.

2

user-e44da6d293132ab3

Если взять предложенный второй способ, следовало бы упомянуть про "вычитание" списков

0

Ivan Grishaev

Списки нельзя вычитать. Можно делать это только со множествами. Операции над множествами мы рассматривали. Но в аннм примере нужно сравнивать длины списков.

0

Тимофей

Вопрос конечно не совсем в тему, если что можно его удалить. В интернете много по этому поводу рассуждений, но хотелось бы вашего мнения. Если бы меня спросили что выбрать новичку windows или linux. Я бы посоветовал конечно вин. Вопрос, любой новичек совсем новичек, начиная изучать какой то язык хочет в итоге писать что то с визуальным интерфейсом, насколько подходит для этого питон ? Можно и в линукс под вайн exe запускать, а стоит ли если можно сделать в вин без бубна.

0

Ivan Grishaev

Учить питон можно и на виндузе. Но в долгосрочной перспективе нужно осваивать линукс, если только вы не программируете под платформу .Net, конечно. Промышленная разработка на Питоне, Руби, Джаве и тд намного комфортнее на линуксах и маках. Я советую сделать над собой усилие и однажды перейти на то или другое (рекомендую Мак).

Писать для питона программы с окошками можно, есть несколько хороших библиотек, одна из них идет в стандартной поставке питона. Об оконном интерфейсе мы когда-нибудь поговорим. Питон не собирается в exe-файлы, но есть сторонние либы, которые могут это сделать. Рекомендую пакет cx_Freeze -- он может собрать из вашего проекта исполняемый файл для любой платформы и даже оформить инсталятор.

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

Другой тренд -- это мобильные приложения. У многих сервисов есть мобильные приложения, но нет декстопных, потому что из телефона можно получить на порядки больше ценной информации о том, где был пользователь, с кем он общается и тд. Поэтому умение рисовать окошки -- далеко не показатель успешности языка. Некоторые современные языки, например, GO или Clojure, не имеют устоявшихся библиотек для оконного интерфейса, но стремительно наблюдают популярность.

6

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
18 мая 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
18 мая 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
18 мая 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
18 мая 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
18 мая 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
18 мая 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
18 мая 5 месяцев