Skip to main content
 首页 » 编程设计

Python data[i] 到 data[i+100] # (eg. 50)

2025年05月04日23wayfarer

我有一个包含大量数据的列表。如果我想将 if 语句设置为下面的伪代码:

if data[i] to data[i+100] < 50: 
    data[i] == 1 

有什么方法可以让我不需要输入如下所示的内容吗?

data[i] <50 and data[i+1] <50 and data[i+2] <50 and .... and data[i+100] <50:  

因为这太耗时了。如果有人知道更快的方法,请告诉我。赞赏!

请您参考如下方法:

是的,您可以使用 all(..) 对列表进行切片:

if all(x < 50 for x in data[i:i+101]): 
    data[i] = 1 # probably you want assignment? 

你必须将 i:i+101 写成切片(而不是 i:i+100),因为上限是不相容的.

或者您可以使用 range(..) 并保存列表的切片副本:

if all(data[j] < 50 for j in range(i,i+101)): 
    data[i] = 1 # probably you want assignment? 

请注意,虽然您没有单独输入所有这些条件,但 Python 当然仍会执行迭代(并评估最多 101 个这样的表达式)。