一道Python面试题:给出d = [True, False, True, False, True],请利用列表d,只用一句话返回列表[0,2,4]
看题:给出d = [True, False, True, False, True],请利用列表d,只用一句话返回列表[0,2,4]
这道题的关键是拿到True的索引值,最初我是用list的index方法搭配高阶函数filter来解的,但是我忽略了index只能拿到第一个True的索引(也就是0)。这道题在网上还没有答案,于是我去搜如何拿到如何拿到相同值得索引并受到启发,于是想到了下面几个方法。如果大家有不同的解法,也请在留言中回复,大家一起交流,共同进步。
[i for i,v in enumerate(d) if v] [i for i in range(len(d)) if d[i]]