尝试遍历索引值 - 打算为每个索引号除以 2 获取 False 值



我有一个列表,例如:

bool_list = [假,假,真,真,真,真,真]

现在我计划运行一个 for 循环,以确保每个除以 2 的索引值都转换为 False。如果索引值未除以 2,则保持不变。

例如,我想要一个结果,其中bool_list将显示 =

[假,假,假,真,假,真],因为第二个和第四个索引已变为假。

我尝试使用枚举函数编写以下内容 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]

我认为这就是您要查找的内容。 只是更改了bool_list的第 4 和第 6 个元素。

def mark_false(bool_list, p):
for i in range(2 * p, len(bool_list), p):
bool_list[i] = False
return bool_list
print(mark_false(list_true(6), 2))

相关内容

最新更新