我想生成一个列表理解,它接收一个数字列表,并根据列表中的值调整数字。
例如:
如果列表中的数字是>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]