注册
登录
查看:473 | 回复:5
花棚
怎么获取下列列表中True值的索引号
发表于 2023/7/7 12:51:58
楼主

tmplist = [True, True, False, True, False]


我想得到[0,1,3]的结果


听雨
发表于 2023/7/7 12:54:51
沙发
tmplist = [True, True, False, True, False]
idx = []
for i in range(len(tmplist)):
    if tmplist[i] == True:
        idx.append(i)
        
print(idx)


听雨
最佳答案 发表于 2023/7/7 12:56:28
板凳
tmplist = [True, True, False, True, False]
print([i for i in range(len(tmplist)) if tmplist[i] == True])


小哥哥
发表于 2023/7/7 12:58:51
4楼
pythonic solution should be as followint:
from itertools import compress
mask = range(5)
tmplist = [True, True, False, True, False]
print(list(compress(mask, tmplist))


听雨
发表于 2023/7/7 13:00:27
5楼
from itertools import compress
tmplist = [True, True, False, True, False]
mask = []
for i in range(5):
    mask.append([i for i in range(len(tmplist)) if tmplist[i] == True])
print(list(compress(mask, tmplist)))


要的是下面的结果?

[[0, 1, 3], [0, 1, 3], [0, 1, 3]]


花棚
发表于 2023/7/7 13:03:30
6楼

嗯,非常感谢

立即注册站大爷用户,免费试用全部产品
立即注册站大爷用户,免费试用全部产品