【发布时间】:2018-09-09 09:26:33
【问题描述】:
我想将我的颜色数组转换为 RGB 像素值。
颜色
array(['#32CD32', '#CD5C5C', '#00BFFF', '#1E90FF', '#00008B', '#ADFF2F',
'#B0E0E6', '#7CFC00', '#00008B', '#1E90FF', '#F08080', '#F08080',
'#FA8072', '#0000FF', '#7CFC00', '#B0E0E6'],
dtype='<U7')
我尝试了什么?
pixel_color = ['#%02x%02x%02x' % (c[0], c[1], c[2]) for c in colors]
我收到以下错误:
***** TypeError: %x format: an integer is required, not str**
然后我做了以下事情:
pixel_color = ["#%02x%02x%02x" %(int(c[0]), int(c[1]), int(c[2])) for c in colors]
然后我得到以下错误:
***** ValueError: int() 以 10 为底的无效文字:'#'**
【问题讨论】:
-
嗨@chrisz,谢谢你的评论我试过pixel_color = ["%02x%02x%02x" %(int(c[0]), int(c[1]), int (c[2])) for c in colors] 但是我得到相同的错误 ValueError: invalid literal for int() with base 10: '#'
-
是的,因为您没有从输入中删除
# -
colors= [c.strip('#') for c in colors] 返回 ['32CD32', 'CD5C5C', '00BFFF', '1E90FF', '00008B', 'ADFF2F' , 'B0E0E6', '7CFC00', '00008B', '1E90FF', 'F08080', 'F08080', 'FA8072', '0000FF', '7CFC00', 'B0E0E6'] 然后pixel_color = ["%02x%02x %02x" %(int(c[0]), int(c[1]), int(c[2])) for c in colors] *** ValueError: int() 以 10 为底的无效文字:' C
-
我不确定您希望该代码做什么。
标签: python python-3.x syntax syntax-error typeerror