需考量历史假索引的布尔列表假索引转换函数开发需求
布尔列表索引翻转需求
假设有一个全为True的布尔列表:
bools = [True] * 100
我们可通过一个元组指定要设为False的元素索引:
false_index = (0,2,4) for element in false_index: bools[element] = False
当再次使用相同元组设置False元素时,需考虑列表中已存在的False值。现需开发一个check_index函数,接收已翻转的旧假索引old_false_index和待翻转的新假索引new_false_index,返回需翻转的True值对应的索引元组。示例如下:
old_false_index = (0,2,4) new_false_index = (0,2,4) check_index(old_false_index, new_false_index) # 输出 (1,5,7)
可视化示例
初始8个True的列表(用1表示True,0表示False):
[ 1 1 1 1 1 1 1 1 ]
首次使用(0,2,4)转换后列表变为:
[ 0 # index 0 已设为False 1 0 # index 2 已设为False 1 0 # index 4 已设为False 1 1 1 ]
再次使用相同元组转换时,实际要翻转当前为True的元素,最终列表变为:
[ 0 0 # index 1 为第一个可转换元素(原True,设为False) 0 1 0 0 # index 5 为第三个可转换元素(原True,设为False) 1 0 # index 7 为第四个可转换元素(原True,设为False) ]
内容的提问来源于stack exchange,提问作者DHJ
相关产品推荐
相关产品推荐

