Как этот код Python может быть написан без одной строки для цикла? - PullRequest
0 голосов
/ 02 декабря 2018

Я видел функцию, которая преобразует шестнадцатеричные цветовые коды в RGB.но я не очень хорошо это понял.Как это могло быть написано с многострочным циклом for?и что делает эта строка: hex[i:i + 2], 16

def hex_to_rgb(hex):
    return tuple(int(hex[i:i + 2], 16) for i in (0, 2 ,4))

Спасибо.

1 Ответ

0 голосов
/ 02 декабря 2018

Все, что он делает, это получает значение красного, зеленого и синего из шестнадцатеричного значения, преобразует его в целое число и возвращает их как кортеж https://www.rapidtables.com/convert/color/how-hex-to-rgb.html

def hex_to_rgb(hex):
    rgb_lst = []
    for i in (0, 2, 4):
        hex_int = int(hex[i: i + 2], 16) # convert to base 16 int
        rgb_lst.append(hex_int)
    return tuple(rgb_lst)
...