gpt4 book ai didi

python - 增加列表理解的值(value)限制

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:08 25 4
gpt4 key购买 nike

我正在尝试找到一种简洁的方法来获取两个 int 元组的值之间的差异。元组本身有局限性,因为它们代表 RGB 颜色。这是我目前所拥有的:

tupleone = (255, 0, 255)  # Magenta
tupletwo = (255, 0, 0) # Red
tuple([tupleone[x] - tupletwo[x] for x in range(3)]) # makes Blue

我这里遇到的问题是边界检查,因为每个颜色值必须是 0-255。我要做的是,如果从较小的数字中减去较大的数字,则为给定的索引返回 0。我一直在用它来测试单个索引:

value = -10
max(0, min(color, 255)) # value = 0

这是我可以用列表推导式干净地做的事情吗?还是有更好的方法?

最佳答案

这是一种方法

tuple(sorted((0, 255, tupleone[x] - tupletwo[x]))[1] for x in range(3))

但也许你应该只使用一个函数

def clamp_0_255(x):
return max(0, min(x, 255))

tuple(clamp_0_255(tupleone[x] - tupletwo[x]) for x in range(3))

旁白:您不需要使用列表理解。 tuple() 可以很好地处理生成器表达式

关于python - 增加列表理解的值(value)限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16532796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com