我如何将这个for循环转换为列表理解?
rgb_arr = [[217, 180, 131], [242, 228, 221], [132, 174, 221], [203, 135, 74], [28, 49, 21],
[154, 179, 101], [213, 200, 186], [87, 143, 51]]
hex_palette = []
for rgb in rgb_arr:
col_hex = '#' + hex(rgb[0]).split('x')[-1] + hex(rgb[1]).split('x')[-1] + hex(rgb[2]).split('x')[-1]
hex_palette.append(col_hex)
print(hex_palette)从print语句得到的十六进制列表应该如下所示
['#d9b483', '#f2e4dd', '#84aedd', '#cb874a', '#1c3115', '#9ab365', '#d5c8ba', '#578f33']有没有一种简单的方法来减少这部分的重复?
hex(rgb[0]).split('x')[-1] +发布于 2020-03-20 06:45:00
要做到这一点,最直接的方法是使用字符串格式化,无论是否在列表copmrehension中:
[f'#{a:02x}{b:02x}{c:02x}' for a,b,c in rgb_arr]或者只是:
result = []
for a,b,c in rgb_arr:
result.append(f'#{a:02x}{b:02x}{c:02x}')https://stackoverflow.com/questions/60766064
复制相似问题