【发布时间】:2021-09-17 15:20:20
【问题描述】:
我有一些十六进制字符串 (splited_colors),我想将它们转换成颜色。 splited_colors 是一个长度为 221228 的列表,其第一行类似于 splited_colors[1] = [['ab0232'],['0013aa'],['ac0102']]。另外,我还有另一个字符串,例如“000000”。某些行已转换,但其他行未转换。我检查了一下,所有的十六进制字符串都是一样的,我没有任何不寻常的十六进制字符串。这个错误指的是什么?
RGB_colors_1 = []
for j in range (len(splited_colors)):
RGB_1 = tuple(int(splited_colors[j][0][k:k+2], 16) for k in (0, 2, 4))
RGB_colors_1.append (RGB_1)
【问题讨论】:
-
请注明
spllited_colors是什么;该问题是由您未能包含的该变量的值引起的。此外,它应该被“拆分”,但这不是错误的根源。 -
所以您亲自检查了所有 211,228 个字符串以确保它们的格式都正确?看来你的程序告诉你不是这样。您是否尝试过捕获异常并打印出失败的行?
-
您需要在遇到该错误时停下来并确定
splited_colors[j][0]的确切含义。 -
Python 新手?您的代码不是 Pythonic,“
splited_colors[1]”是第二行。在任何情况下:将splitted colour和RGB_1 打印到一个文件中,并检查它何时失败。是否有可能您没有处理所有情况(例如,网络使用 3 个十六进制数字颜色也是“#18c”,这意味着1188cc)。或者你可能有空数据,或者双引号(常见错误),你应该检查哪些数据失败。如果你没有找到原因,你可以在这里发布(带有失败的确切输入,以及你期望的输出(在这些数据上)。 -
@PaulCornelius 我打印了所有的行