从索引获取布尔列表中的真值-python

从索引获取布尔列表中的真值-python,python,list,Python,List,我如何计算这里所描述的逆:? 当我尝试搜索“如何从整数索引中获取布尔列表中的真值”时,上面的链接总是出现,但它会从布尔列表中的真值中提供索引,这与我想要的相反 例如,来自: t = [4, 5, 7] count = 16 我想获得: [False, False, False, False, True, True, False, True, False, False, False, False, False, False, False, False] 正如Python所期望的那样,这些值都是

我如何计算这里所描述的逆:? 当我尝试搜索“如何从整数索引中获取布尔列表中的真值”时,上面的链接总是出现,但它会从布尔列表中的真值中提供索引,这与我想要的相反

例如,来自:

t = [4, 5, 7]
count = 16
我想获得:

[False, False, False, False, True, True, False, True, False, False, False, False, False, False, False, False]
正如Python所期望的那样,这些值都是0索引的。
我猜我的问题是重复的,但每次我试图记住如何做这个操作时,都找不到我要找的东西,这太令人恼火了。我决定问一个新问题,这样我的谷歌搜索希望下次能出现这篇文章。

使用列表理解,并附带条件:

print([True if i in t else False for i in range(count)])
较短:

print([i in t else False for i in range(count)])

您可以使用列表理解。我建议您将
t
转换为
set
进行O(1)查找:

您也可以尝试使用:

也值得将
t
转换为一个集合,因为查找是O(1)而不是O(N)

您还可以使用:

这个怎么样:

In [6]: holderplace =[False for i in range(count)]

In [7]: for i in t:
   ...:     holderplace[i-1]=True
   ...:     

In [8]: holderplace
Out[8]: 
[False,
 False,
 False,
 True,
 True,
 False,
 True,
 False,
 False,
 False,
 False,
 False,
 False,
 False,
 False,
 False]

In [9]: 
list(map(lambda x: x in t, range(count)))
# [False, False, False, False, True, True, False, True, False, False, False, False, False, False, False, False]
list(map(t.__contains__, range(count)))
In [6]: holderplace =[False for i in range(count)]

In [7]: for i in t:
   ...:     holderplace[i-1]=True
   ...:     

In [8]: holderplace
Out[8]: 
[False,
 False,
 False,
 True,
 True,
 False,
 True,
 False,
 False,
 False,
 False,
 False,
 False,
 False,
 False,
 False]

In [9]: