提问人:Тимофей Макаров 提问时间:11/8/2023 最后编辑:mkrieger1Тимофей Макаров 更新时间:11/8/2023 访问量:85
将布尔值与列表中的整数 0 和 1 区分开来
Distinguish bool from integers 0 and 1 in list
问:
s = [0, 1, True]
我有一个列表,我想找到 True 并访问它。我知道,,真的没有办法不循环吗?False == 0
True == 1
print(s.index(True)) # output: 1
print(s.count(True)) # output: 2
我尝试转换为 ,并将其与字符串进行比较,然后将响应包装在 中。我试过比较,但我想知道如何比迭代每个元素更优雅地做到这一点。bool
str
'True'
bool()
type()
答: 暂无答案
评论
index
count
index_identity(iterable, needle)
elem is needle
1 is True
False
count
可以实现为 .sum(isinstance(x, bool) and x for x in s)
index
next(filter(lambda x: isinstance(x[1], bool) and x[1], enumerate(s)), (-1, None))[0]