📜  Python|分离真值和假值索引

📅  最后修改于: 2022-05-13 01:55:14.791000             🧑  作者: Mango

Python|分离真值和假值索引

有时,在使用Python列表时,我们可能会遇到一个问题,即我们有布尔列表并且需要分别具有 True 和 False 值的索引。这可以在数据科学领域有可能的用途。让我们讨论可以执行此任务的某些方式。

方法#1:使用循环
这是可以执行此任务的一种方式。我们创建不同的列表并使用条件语句检查 True 或 False 值,并将其索引相应地附加到专用列表中。

# Python3 code to demonstrate working of
# Segregate True and False value indices
# using loops
  
# initialize list
test_list = [False, True, False, False, True, True]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Segregate True and False value indices
# using loops
res_true, res_false = [], []
for i in range(0, len(test_list)):
    if test_list[i]:
        res_true.append(i)
    else :
        res_false.append(i)
  
# printing result
print("True indices after grouping : " + str(res_true))
print("False indices after grouping : " + str(res_false))
输出 :
The original list is : [False, True, False, False, True, True]
True indices after grouping : [1, 4, 5]
False indices after grouping : [0, 2, 3]

方法 #2:使用循环 + enumerate()
通过使用上述功能,可以以暴力方式解决此任务。在此,我们选择附加列表并在专用列表中相应地添加元素。

# Python3 code to demonstrate working of
# Segregate True and False value indices
# using loop + enumerate()
  
# initialize list
test_list = [False, True, False, False, True, True]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Segregate True and False value indices
# using loop + enumerate()
res_true, res_false = [], []
for i, ele in enumerate(test_list):
    temp = res_true if ele else res_false
    temp.append(i)
  
# printing result
print("True indices after grouping : " + str(res_true))
print("False indices after grouping : " + str(res_false))
输出 :
The original list is : [False, True, False, False, True, True]
True indices after grouping : [1, 4, 5]
False indices after grouping : [0, 2, 3]