简短的问题:如果值大于0,我想通过从每个通道中减去10来从现有颜色中创建一种颜色,有没有一种简短的编写方法?在这种情况下,我不知道如何使用lambda,有人可以告诉我吗?
self.color = [color[x]-10 if lambda x: color[x]>0 for x in range(0,3)]
编辑:所有其他采用新创建颜色的通道应等于0
答案 0 :(得分:0)
您为什么需要lambda?
self.color = [color[x]-10 for x in range(0,3) if color[x]>0]
甚至更好:
self.color = [col-10 for col in color if col>0]
答案 1 :(得分:0)
请注意,如果最终值大于0,则只能减去10,否则将得到负值。
您可以这样做:
[color[x]-10 if color[x]>10 else color[x] for x in range(0,3)]
或更简单地说,因为您不必使用索引:
color = [5, 14, 12]
[c-10 if c>10 else c for c in color]
# 5, 4, 2
如果您打算将值削减为0,则可以执行以下操作:
color = [5, 14, 12]
[c-10 if c>10 else 0 for c in color]
# [0, 4, 2]