我有一个列表,如:
bool_list = [False,False,True,True,True,True]
现在我计划运行一个for循环,以确保每个索引值除以2都转换为False。如果指数值不除以2则保持不变。
例如,我想要一个bool_list将显示=的结果
[False,False,False,True,False,True],因为第2和第4个索引已变为False。
我试图使用枚举函数编写以下for循环来获取索引值但不知何故它给了我一个错误:
def mark_false(bool_list, p):
for idx,val in enumerate(bool_list):
if idx % p ==0:
bool_list[idx] ==False
else:
bool_list[idx] = bool_list[idx]
return (bool_list)
该函数将使用p = 2
你可以在没有循环的情况下通过用相同长度的False
对象列表替换每个其他索引的切片来做到这一点:
>>> bool_list = [False,False,True,True,True,True]
>>> bool_list[::2] = [False] * len(bool_list[::2])
>>> bool_list
[False, False, False, True, False, True]