楼主: huapeng66
3396 7

[问答] 【急】怎么获取布尔列表True值的索引号? [推广有奖]

  • 6关注
  • 0粉丝

博士生

47%

还不是VIP/贵宾

-

威望
0
论坛币
5217 个
通用积分
7.0196
学术水平
3 点
热心指数
4 点
信用等级
2 点
经验
24876 点
帖子
133
精华
0
在线时间
320 小时
注册时间
2018-9-16
最后登录
2023-3-21

楼主
huapeng66 学生认证  发表于 2022-4-8 23:51:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如题:怎么杨获取下列列表中True值的索引号
  1. tmplist = [True, True, False, True, False]
复制代码
  我想得到[0,1,3]的结果
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Rue TRU list LSE tmp

沙发
听雨在小楼 发表于 2022-4-10 09:38:39
  1. tmplist = [True, True, False, True, False]
  2. idx = []
  3. for i in range(len(tmplist)):
  4.     if tmplist[i] == True:
  5.         idx.append(i)
  6.         
  7. print(idx)
复制代码


藤椅
听雨在小楼 发表于 2022-4-10 10:15:59
  1. tmplist = [True, True, False, True, False]
  2. print([i for i in range(len(tmplist)) if tmplist[i] == True])
复制代码


板凳
huapeng66 学生认证  发表于 2022-4-14 19:10:03
听雨在小楼 发表于 2022-4-10 10:15
谢谢!

报纸
xjg 发表于 2022-4-18 00:27:19
pythonic solution should be as followint:

from itertools import compress
mask = range(5)
tmplist = [True, True, False, True, False]
print(list(compress(mask, tmplist))

地板
xjg 发表于 2022-4-18 10:01:02
pythonic way to solve this problem:

from itertools import compress
tmplist = [True, True, False, True, False]
mask = range(5)
print(list(compress(mask, tmplist)))

7
听雨在小楼 发表于 2022-4-18 10:14:34
  1. from itertools import compress
  2. tmplist = [True, True, False, True, False]
  3. mask = []
  4. for i in range(5):
  5.     mask.append([i for i in range(len(tmplist)) if tmplist[i] == True])
  6. print(list(compress(mask, tmplist)))
复制代码
要的是下面的结果?
  1. [[0, 1, 3], [0, 1, 3], [0, 1, 3]]
复制代码


您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 11:52