我有一个列表,例如:
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))