170 похожих чатов

Господа, ищу возрастающие последовательности в списке digits, где каждое следующие

число больше строго на 0.1 или на 1).
Как-то можно это в питоне упростить?

for i in range(0, len(digits) - 1):
k = 0

while Decimal(digits[i + k + 1]) == Decimal(digits[i + k]) + Decimal('0.1') or \
Decimal(digits[i + k + 1]) == int(Decimal(digits[i + k]) + 1):
k += 1
if k == len(digits) - i - 1: break

if k > 0:
print(digits[i:i+k+1])

11 ответов

24 просмотра

А можно пример что именно это делает

Andrei-Kopylov Автор вопроса
Tishka17
А можно пример что именно это делает

Ищет возрастающие последовательности.. Первая строка - это исходный список.. Первая последовательность - это вторая строка. Она обрывается, когда после 2.2 идет 1.. Продолжалась бы, если бы после 2.2 шло 2.3 или 3

а зачем, собсна, децимал? В digits лежат строки? (да и в конце вообще decimal -> int, что мешало сразу в int, учитывая то, что там лишь сложение делается перед приведением к инту)

Andrei-Kopylov Автор вопроса
megahomyak
а зачем, собсна, децимал? В digits лежат строки? (...

Да, в digits строки.. Ну да, во втором случае лишний десимал.. Ну это не суть.. Вопрос больше, можно ли как-то проще в питоне записать, что извлекаем подсписки, где следующий элемент больше предыдущего на 0.1 или 1?

k тут для чего?

Andrei-Kopylov Автор вопроса
megahomyak
k тут для чего?

Количество элементов в подсписке

Andrei Kopylov
Количество элементов в подсписке

то есть тебе надо найти длину первой попавшейся возрастающей последовательности?

Andrei-Kopylov Автор вопроса
megahomyak
то есть тебе надо найти длину первой попавшейся во...

Не первой, а всех Есть допустим список [1, 2, 3, 2, 5, 6, 7] Из него должно извлекаться, если по условию +1: [1, 2, 3] [5, 6, 7] Теперь усложним: Есть допустим список [1, 1.1, 1.2, 2, 4, 1, 4.1, 4.2] Из него должно извлекаться, если по условию +1 от int или +0.1: [1, 1.1, 1.2, 2] [4.1, 4.2]

Кстати, а вот тут почему просто не сравнить два числа? (Можно и без децималов тогда)

Andrei-Kopylov Автор вопроса
megahomyak
Кстати, а вот тут почему просто не сравнить два чи...

Нужно, чтобы не просто больше было, а ровно на 0.1 больше от предыдущего значения ИЛИ на 1 больше от int(предыдущего значения)

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
19
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
7
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
такое тоже не подойдёт? {$message 'Я тут эт самое, закомментил эт самое, чтобы эт самое того, ну надо было короче эт самое, делфи сакс эт самое, лазарус рулез!'}
notme
8
Карта сайта