我有一段代码,我应该在其中创建一个总机。我想返回所有打开的开关的列表。这里“开”等于 True
和“关”等于 False
。所以现在我只想返回所有 True
值及其位置的列表。这就是我所拥有的,但它只返回第一次出现 True
的位置(这只是我的代码的一部分):
self.states = [False, False, False, False, True, True, False, True, False, False, False, False, False, False, False, False]
def which_switch(self):
x = [self.states.index(i) for i in self.states if i == True]
这只返回“4”
原文由 Amon 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
enumerate
,list.index
返回找到的第一个匹配项的索引。对于巨大的列表,最好使用
itertools.compress
: