试图循环索引值 - Intend to得到每个索引号除以2的False值

问题描述 投票:0回答:1

我有一个列表,如:

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

python-3.7
1个回答
0
投票

你可以在没有循环的情况下通过用相同长度的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]
© www.soinside.com 2019 - 2024. All rights reserved.