如何设置嵌套列表理解行的格式



我想生成一个列表理解,它接收一个数字列表,并根据列表中的值调整数字。

例如:

如果列表中的数字是>255我希望列表理解采用值255如果列表中的数字是<0我希望列表理解采用值0任何其他值(在0和255之间(都应该被列表理解所接受。

我使用的代码是:

num = [260, -2, 124]
adj = [[0 if (n <= 0) else 255 if (n > 255) else n in n if n in range(1,255)]] for n in num)
print(adj)

我已经尝试了上面的,但我得到了语法错误:

File "/Users/home/Dropbox/Python_general_work/Python FB Groups/hex_converter.py", line 54
adj = [[0 if (n <= 0) else 255 if (n > 255) else n in n if n in range(1,255)]] for n in nums)
    ^
SyntaxError: invalid syntax
Process finished with exit code 1

你能建议如何构建列表理解,使其发挥作用吗。

谢谢。

adj = [0 if n <= 0 else 255 if n >= 255 else n for n in num]

在列表理解中,您不需要额外的range(1, 255)作为确保数字在[1255]范围内的条件

我会使用min从上裁剪,max从下裁剪:

adj = [min(255, max(0, n)) for n in num]

最新更新