Python 从与下一个主键截然不同的主键生成CSS背景色

Python 从与下一个主键截然不同的主键生成CSS背景色,python,css,Python,Css,在Python中,我从Django中模型的主键生成一个6位数的十六进制,我可以将其用作页面上div的CSS背景色 如果我有两个靠近的主键,我怎么能产生明显不同的颜色。例如,使用主键24和25给出几乎相同的黑色 >>>format(24, "06X") 000018 及 如果我可以得到与主键增量相同的红色和绿色,那就太好了。最好不要从主键生成颜色。 但是,如果你想/需要,你可以把这个数字概括为24位。然后倒过来。最低位现在变成最高位 这样,1的增量总是可以注意到的,尽管相距稍远

在Python中,我从Django中模型的主键生成一个6位数的十六进制,我可以将其用作页面上div的CSS背景色

如果我有两个靠近的主键,我怎么能产生明显不同的颜色。例如,使用主键24和25给出几乎相同的黑色

>>>format(24, "06X")
000018


如果我可以得到与主键增量相同的红色和绿色,那就太好了。

最好不要从主键生成颜色。 但是,如果你想/需要,你可以把这个数字概括为24位。然后倒过来。最低位现在变成最高位

这样,1的增量总是可以注意到的,尽管相距稍远的数字可能仍然非常相同

import md5, struct

def pseudorandom_color_from_int(value):
  return md5.md5(struct.pack('i', value)).hexdigest()[:6]
示例用法:

>>> print map(pseudorandom_color_from_int, (24, 25, 26))
['503533', '2b197a', 'ed69df']

颜色看起来是随机的,但它们是确定性的,因此同一颜色总是由特定的整数值产生。

为什么不能在固定的集合上迭代?e、 g thiscss=colors[id%lencolors]@riffraff谢谢。这似乎效果很好。但仍然有可能两个相应的键会产生几乎相同的颜色。虽然机会很小。
>>> print map(pseudorandom_color_from_int, (24, 25, 26))
['503533', '2b197a', 'ed69df']