在python中将boolean转换为整数位置
发布时间:2020-12-20 13:01:39 所属栏目:Python 来源:网络整理
导读:参见英文答案 Getting indices of True values in a boolean list????????????????????????????????????6个 我有一个布尔列表,说: x = [True,False,True] 如何将此列表转换为整数位置,以便获得结果: y = [1,4] ? 解决方法 您可以将列表推导与 enumerate功
参见英文答案 >
Getting indices of True values in a boolean list????????????????????????????????????6个
我有一个布尔列表,说: x = [True,False,True] 如何将此列表转换为整数位置,以便获得结果: y = [1,4] ? 解决方法
您可以将列表推导与
enumerate功能结合使用,例如:
>>> x = [True,True] >>> [index for index,element in enumerate(x,start=1) if element] [1,4] 或者,如果您愿意使用NumPy并获得numpy.ndarray类型的结果,那么NumPy函数(几乎)可以满足您的需求: >>> import numpy >>> numpy.where(x) (array([0,3]),) >>> numpy.where(x)[0] + 1 array([1,4]) 上面一行中的奇怪[0]是因为numpy.where总是在元组中返回它的结果:输入数组的每个维度的元组的一个元素.由于在这种情况下输入数组是一维的,我们并不真正关心外部元组结构,因此我们使用[0]索引操作来提取我们需要的实际数组. 1是从Python / NumPy的标准的基于0的索引到基于1的索引,它看起来好像你想要的. 如果您正在处理大量输入数据(特别是如果输入列表已经是NumPy数组的形式),则NumPy解决方案可能明显快于列表推导. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |