Вопрос №372 от пользователя Тимофей в уроке «Типы-коллекции», курс «Введение в Python»
Намекните как task2 решить
Есть конечно dict(zip())
, но как быть с None
Нагуглил ```
dict(itertools.zip_longest(keys, vals, fillvalue=None)
Правда это к нашему уроку не относится :)
Есть несколько способов.
Например, можно проверить, что если значений меньше, чем ключей, можно к значениям добавить несколько None
, чтобы уравнять длины ключей и значений. После этого собрать словарь, как вы предлагаете.
Можно по-другому: собрать словарь, получить список его ключей, составить множество, вычесть его из множества исходных ключей. Получите разницу ключей. Пройтись по ней в цикле, на каждом шаге добавить к словарю ключ со значением None.
Если эти задания рассчитаны на более опытных, нежели на начинающих. То наверное все в порядке, а так неплохо было бы хоть какие то намеки для старта. По крайней мере ваш предыдущий намек мне помог )
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. Теория в видео подана на отлично.
Не ужас, только надо подчистить, например, два раза копипаста xx = dict(zip(keys,vals))
и имена переменных ясней.
Возможно, задания я упрощу или добавлю подсказки.
Большое спасибо за отзывы.
Если взять предложенный второй способ, следовало бы упомянуть про "вычитание" списков
Списки нельзя вычитать. Можно делать это только со множествами. Операции над множествами мы рассматривали. Но в аннм примере нужно сравнивать длины списков.
Вопрос конечно не совсем в тему, если что можно его удалить. В интернете много по этому поводу рассуждений, но хотелось бы вашего мнения. Если бы меня спросили что выбрать новичку windows или linux. Я бы посоветовал конечно вин. Вопрос, любой новичек совсем новичек, начиная изучать какой то язык хочет в итоге писать что то с визуальным интерфейсом, насколько подходит для этого питон ? Можно и в линукс под вайн exe запускать, а стоит ли если можно сделать в вин без бубна.
Учить питон можно и на виндузе. Но в долгосрочной перспективе нужно осваивать линукс, если только вы не программируете под платформу .Net, конечно. Промышленная разработка на Питоне, Руби, Джаве и тд намного комфортнее на линуксах и маках. Я советую сделать над собой усилие и однажды перейти на то или другое (рекомендую Мак).
Писать для питона программы с окошками можно, есть несколько хороших библиотек, одна из них идет в стандартной поставке питона. Об оконном интерфейсе мы когда-нибудь поговорим. Питон не собирается в exe-файлы, но есть сторонние либы, которые могут это сделать. Рекомендую пакет cx_Freeze -- он может собрать из вашего проекта исполняемый файл для любой платформы и даже оформить инсталятор.
Но сегодня дескпотные приложения теряют свою популярность. На смену им приходят клиент-серверные решения с веб-интерфейсом. Их в раз проще поддерживать и сопровождать, для их запуска нужен только браузер. Браузер -- это лучшее средство текста и мультимедии, то сути, гораздо лучше, чем любое десктопное окно. А питон -- одно из лучших решений для веба.
Другой тренд -- это мобильные приложения. У многих сервисов есть мобильные приложения, но нет декстопных, потому что из телефона можно получить на порядки больше ценной информации о том, где был пользователь, с кем он общается и тд. Поэтому умение рисовать окошки -- далеко не показатель успешности языка. Некоторые современные языки, например, GO или Clojure, не имеют устоявшихся библиотек для оконного интерфейса, но стремительно наблюдают популярность.
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.







