python – 如何将整数钳位到某个范围?

我有以下代码:

new_index = index + offset
if new_index < 0:
    new_index = 0
if new_index >= len(mylist):
    new_index = len(mylist) - 1
return mylist[new_index]

基本上,我计算一个新索引并使用它来从列表中查找一些元素.为了确保索引在列表的边界内,我需要将这两个if语句分成4行.那是相当冗长,有点难看……我敢说,这是非常不科幻的.

还有其他更简单,更紧凑的解决方案吗? (和更多pythonic)

是的,我知道我可以在一行中使用if else,但它不可读:

new_index = 0 if new_index < 0 else len(mylist) - 1 if new_index >= len(mylist) else new_index

我也知道我可以将max()和min()链接在一起.它更紧凑,但我觉得它有点模糊,如果我输错了就更难找到错误.换句话说,我觉得这很简单.

new_index = max(0, min(new_index, len(mylist)-1))

解决方法:

实际上,这很清楚.很多人很快就学会了.您可以使用评论来帮助他们.

new_index = max(0, min(new_index, len(mylist)-1))
上一篇:文本过多隐藏


下一篇:css 计算值函数