LINUX.ORG.RU

Думаю, мысль понятна.

Ты прав, предельно ясна, что ОП - гомосексуалист(ка)

Dred ★★★★★
()

ТСу вообще нужен собеседник?

Octagon
()
Ответ на: комментарий от gasinvein

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

bikes
() автор топика
Ответ на: комментарий от SevikL

В чем угадайка? Или надо словами было описать? Так словами опишешь, и не такое тут услышишь. Это не лаба. В исходной задаче структура данных совершенно другая. Не интересно, проходи мимо никто тебя не держит.

bikes
() автор топика
Ответ на: комментарий от eternal_sorrow

Спасибо еще раз, за столь элегантное решение простой задачи.

bikes
() автор топика
Ответ на: комментарий от bikes

Т.е. вы считаете, что кто-то должен что-то ответить на набор фраз? Вы даже ничего не спросили. Резонно, что Вам никто ничего и не ответит.

int13h ★★★★★
()

Думаю, мысль понятна.

Нет, не совсем. Что должно выводиться, если вход равен [2, 2, 6, 6, 2, 6, 6, 2, 2]?

Crocodoom ★★★★★
()
Ответ на: комментарий от bikes

основной ответ на вопрос из заголовка:

python НЕ замена элементов в списке!

bvn13 ★★★★★
()

Вот без использования специальных функций.

s = [2, 6, 6, 9, 11, 11, 12, 12, 12, 13, 14, 16, 18, 18, 18, 99]

prev = None
i = 0
res = []
for elem in s:
    if elem != prev:
        i += 1
    res.append(i)
    prev = elem
print(res)

anonymous
()
Ответ на: комментарий от bikes

проходи мимо

Сознательные граждане в таких случаях не мимо проходят, а санитаров вызывают.

WitcherGeralt ★★
()
>>> s = [2, 6, 6, 9, 11, 11, 12, 12, 12, 13, 14, 16, 18, 18, 18, 99]
>>> sum([[i]*s.count(v) for i,v in enumerate(sorted(set(s)),1)], [])
[1, 2, 2, 3, 4, 4, 5, 5, 5, 6, 7, 8, 9, 9, 9, 10]
anonymous
()
Ответ на: комментарий от Crocodoom

[1, 1, 1, 1, 1, 2, 2, 2, 2] данные сортируются.

bikes
() автор топика

Остальных тоже благодарю, за альтернативные решения.

bikes
() автор топика
>>> import pandas as pd
>>> s = [1, 2, 2, 3, 4, 4, 5, 5, 5, 6, 7, 8, 9, 9, 9, 10]
>>> pd.Series(s).diff().astype(bool).cumsum().tolist()
[1, 2, 2, 3, 4, 4, 5, 5, 5, 6, 7, 8, 9, 9, 9, 10]

edit: это примерно то же самое что написал anonymous...

edit2: а, то же самое на numpy он тоже написал :)

ei-grad ★★★★★
()
Последнее исправление: ei-grad (всего исправлений: 3)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.