Bad-Coder
@Bad-Coder
Костыль мира.

Почему в список добавляться только последняя буква?

def gradient(text, start_color, stop_color):
    """Create gradient."""
    from colour import Color
    from colr import Colr

    start = Color(start_color)
    step = 1
    stop = list(start.range_to(stop_color, step))

    string = []

    for char, color in zip(text, stop):
        string.append(Colr().hex(color.hex, char))

    return ''.join(list(map(lambda element: str(element), string)))

print(gradient('text', 'red', 'blue'))


Вывод:

t

Почему выводиться только последняя буква текста, а не весь текст?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
у вас step = 1, а должен быть равен длине слова
def gradient(text, start_color, stop_color):
    """Create gradient."""
    from colour import Color
    from colr import Colr

    start = Color(start_color)
    stop = list(start.range_to(stop_color, len(text)))

    string = []

    for char, color in zip(text, stop):
        string.append(Colr().hex(color.hex, char))

    return ''.join(list(map(lambda element: str(element), string)))

print(gradient('text', 'red', 'blue'))

614e2e45c8932374232872.jpeg
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@o5a
Не последняя, а первая. zip выводит по минимальному количеству из всех его параметров. Раз выводит только 1, значит в stop только 1 элемент.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы