@rodion_ilnitskiy

Как разделить элементы списка Python, символов в которых больше, чем 4?

Есть список df['price'], с элементами [1605, 9550, 12556430...]. Необходимо разделить элементы в которых больше символов, чем 4: [1605, 9550, 1255 6430...]
Как это сделать?
  • Вопрос задан
  • 127 просмотров
Пригласить эксперта
Ответы на вопрос 3
Dunaevlad
@Dunaevlad
x = [1605, 9550, 12556430]
for n in x:
    s = str(n)
    print(n/2) if len(s) > 4 else ""
Ответ написан
Комментировать
lxstvayne
@lxstvayne
Люблю Python
Написал такое решение, может разделить минус как показано в одном из асссертов.
from itertools import groupby


def join_segments(string: str, group_len: int, sep: str = ' '):
    groups = groupby(
        enumerate(reversed(string)),
        lambda el: el[0] // group_len
    )

    string = sep.join(
        ''.join(char for i, char in group)
        for _, group in groups
    )

    return string[::-1]


if __name__ == '__main__':
    assert join_segments('1605', 4) == '1605'
    assert join_segments('9550', 4) == '9550'
    assert join_segments('12556430', 4) == '1255 6430'
    assert join_segments('1', 4) == '1'
    assert join_segments('-1234', 4) == '- 1234'
    assert join_segments('1234', 1) == '1 2 3 4'
    assert join_segments('1234', 10) == '1234'
    assert join_segments('', 10) == ''
Ответ написан
Комментировать
@aquapendente
def split_list(values): return list(filter(lambda x: len(str(x)) > 4, values))
y = split_list(df['price'])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 08:04
1 руб./за проект
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект