Найти в Дзене
[Python] Как получить указанное число max или min чисел из списка. heapq vs list.sort()+slice. Нужно ли это начинающему?
Я, наверное, как и многие увлекающиеся программированием люди подписан на некоторые телеграмм-каналы, ВК-сообщества, YouTube-каналы. И вот на одном телеграмм-канале был кратенький пост про модуль heapq, как с его помощью можно легко и просто получить указанное число наибольших или наименьших чисел из списка. heapq - модуль обеспечивающий реализацию алгоритма очереди кучи, также известного как алгоритм очереди приоритетов. Источник: https://docs.python.org/3/library/heapq.html Все как обычно, прочитал, запомнил, интересная идея, все решается в одну строчку...
4 года назад
Python и C#. А словари такие разные. Часть 2
В первой части я рассмотрел, что произойдет при инициализации словаря, содержащего дубликат ключа, в Python и C#. Как оказалось не совсем уж и разные словари. Но что произойдет при добавлении в словарь элемента с ключом, имеющимся уже в словаре. Отвечаем и читаем дальше. Ctrl+C, Ctrl+V в помощь. И так В Python нет метода осуществляющего явное добавление элемента в словарь. Конструкция dictionary['Yandex'] = 3 либо изменяет значение элемента с указанным ключом, либо если элемента с таким ключом не окажется в словаре, добавляет его в словарь...
4 года назад
Python и C#. А словари такие разные. Часть 1
На одном телеграмм-канале, кстати не плохом, по первому впечатлению, был опрос - "Что будет выведено на экран" (код ниже, ну и аналогичный опрос). Отвечаем и читаем дальше. Ctrl+C, Ctrl+V в помощь. Продолжим Я же знаю, что в словарях хранятся только уникальные ключи, он же для этого и разрабатывался, чтобы время поиска равнялось О(1). И моим ответом был пункт номер два. Но не тут то было. Оказывается, пункт номер три. Протестировал код и в правду номер 3. Побродил по просторам рунета и в итоге решил проверить, а как аналогичный код поведет себя на C#...
4 года назад
Во всех ранее опубликованных статьях, картинки с кодом заменены на текст, оформленный согласно синтаксису языка программирования, на котором написан код. Так же присутствует подсветка синтаксиса. Ctrl+С, Ctrl+V в помощь. Фибоначчи без рекурсии. Увеличиваем в N раз одинаковые символы, идущие подряд, в строке. Как разгладить список. Решение в одну строчку. Сортировка итерации в порядке убывания частоты, то есть числа раз, когда они появляются в итерации. Решение в одну строчку. Вычислить бесконечную сумму с заданной точностью E (E > 0). Дана строка. Заменить каждую из групп стоящих рядом точек многоточием (т.е. тремя точками). Даны пары ai и bi как левые и правые концы отрезков на одной прямой, определить отрезок, являющейся пересечением этих отрезков. Для заданной строки определить длину содержащейся в ней максимальной подстроки, не имеющей латинских букв. Определить число, получаемое выписыванием в обратном порядке цифр заданного натурального числа n. Весь код на канале будет теперь представляться в такой форме.
4 года назад
Фибоначчи без рекурсии
Что такое числа Фибоначчи, считаю описывать не стоит, в интернете полно информации об этом. Существует множество способов их вычисления, один из них рекурсия, которая имеет свои определенные недостатки. Первый раз я вычисление чисел Фибоначчи написал на PascalABC через рекурсию. И когда начал изучать Python, решил написать вычисление на Python, но решил сделать это уже не через рекурсию. А через списки. Решение В данном случае вычисляются все числа Фибоначчи от 0 до n, таким образом мы можем получить доступ к любому числу Фибоначчи...
693 читали · 5 лет назад
Увеличиваем в N раз одинаковые символы, идущие подряд, в строке
Задача 1 Дана строка S, и дано натуральное n. Удалить из строки S все группы длиной n подряд стоящих одинаковых символов. Пример: Если ввести строку, например ‘kjhdahhhasaaaaa’, а значение n ввести равное 2, то необходимо получить ‘kjhdahasa’. Решение Задача 2 Дана строка S. Каждую подстроку длиной n > 1, состоящую из одинаковых символов, заменить на подстроку из тех же символов в количестве 2*n штук...
5 лет назад
Как разгладить список. Решение в одну строчку
Еще одна интересная и на первый взгляд простая задачка, которую я решил через рекурсию. А оказалось, на самом деле ее можно решить в одну строчку. Однострочное решение принадлежит не мне. Оно взято с сайта где и была найдена задачка. Задача Существует список, который содержит целые числа или другие вложенные списки, которые могут содержать еще несколько списков и целых чисел, которые затем... вы получаете идею. Вы должны положить все целые значения, в один плоский список. Порядок должен быть такой же как и в первоначальном списке с представлением строки слева направо...
5 лет назад
Сортировка итерации в порядке убывания частоты, то есть числа раз, когда они появляются в итерации. Решение в одну строчку
На одном из сайтов, посещенных бесплатному обучению программированию на Python есть интересная задачка. Которая на первый взгляд показалась мне простой, но в итоге ее решение мне пришлось отложить не надолго, где-то на день. В итоге я ее решил, но потом посмотрев решения других, я нашел решение в одну строчку. Задача Отсортируйте данную итерацию так, чтобы ее элементы заканчивались в порядке убывания частоты, то есть числа раз, когда они появляются в итерации. Если два элемента имеют одинаковую частоту, они должны находиться в том же порядке, что и первое появление в итерации...
5 лет назад
Вычислить бесконечную сумму с заданной точностью E (E > 0)
Задача 1. Не используя стандартные функции, вычислить с точностью eps > 0 y = cos(x) = 1 - x^2/2! + x^4/4! - ... + (-1)^n * x^(2n)/(2n)! + ... Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше eps, все последующие слагаемые можно уже не учитывать. По условию задачи использование вложенных циклы запрещено. Так же по условию задачи для того чтобы избежать целочисленного переполнения предлагается числитель и знаменатель очередного слагаемого хранить отдельно в двух...
1149 читали · 5 лет назад
Дана строка. Заменить каждую из групп стоящих рядом точек многоточием (т.е. тремя точками)
Дана строка S. Создать новые строки из строки S: а) заменить все восклицательные знаки точками; б) заменить каждую точку многоточием (т.е. тремя точками); в) заменить каждую из групп стоящих рядом точек одной точкой; г) заменить каждую из групп стоящих рядом точек многоточием (т.е. тремя точками)...
327 читали · 5 лет назад
Даны пары ai и bi как левые и правые концы отрезков на одной прямой, определить отрезок, являющейся пересечением этих отрезков
Даны целое n>2 и вещественные числа a1 , b1 , ..., an , bn (ai < bi ). Рассматривая пары ai и bi как левые и правые концы отрезков на одной и той же прямой, определить концы отрезка, являющегося пересечением всех этих отрезков. Если такого отрезка нет, сообщить об этом. Например Если n = 3 и a1 = 0, b1 = 10, a2 = 1, b2 = 11, a3 = –1, b3 = 5, то результатом будет отрезок [1, 5]...
5 лет назад
Для заданной строки определить длину содержащейся в ней максимальной подстроки, не имеющей латинских букв
Для заданной строки определить длину содержащейся в ней максимальной подстроки, не имеющей латинских букв. Решение Спасибо за потраченное время на прочтение. Строго не судите. За уместные комментарии буду признателен. Примечание: Задача из: Потапова Е.А. Программирование: учебное методическое пособие...
5 лет назад