From 4401f8a6bddfb8c6a26b45e93f7c72208ab637b8 Mon Sep 17 00:00:00 2001 From: Erik Kooistra <kooistra@astron.nl> Date: Tue, 19 Jun 2018 09:47:05 +0000 Subject: [PATCH] Added find_indices_where() and variants for ==, !=, <, <=, >, >=. --- tools/oneclick/base/common.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tools/oneclick/base/common.py b/tools/oneclick/base/common.py index de1a5a0925..01a7e7d428 100644 --- a/tools/oneclick/base/common.py +++ b/tools/oneclick/base/common.py @@ -421,6 +421,27 @@ def index_a_in_multi_b(a, b): pass return None +def find_indices_where(in_list, value, condition=operator.eq): + """Return list of indices in in_list that match the condition value + + Condition operators from import operator are e.g. + operator.eq : == + operator.ne : != + operator.lt : < + operator.le : <= + operator.gt : > + operator.ge : >= + """ + return [i for i,x in enumerate(in_list) if condition(x, value)] + +def find_indices_where_eq(in_list, value): return find_indices_where_value(in_list, value, operator.eq) +def find_indices_where_ne(in_list, value): return find_indices_where_value(in_list, value, operator.ne) +def find_indices_where_lt(in_list, value): return find_indices_where_value(in_list, value, operator.lt) +def find_indices_where_le(in_list, value): return find_indices_where_value(in_list, value, operator.le) +def find_indices_where_gt(in_list, value): return find_indices_where_value(in_list, value, operator.gt) +def find_indices_where_ge(in_list, value): return find_indices_where_value(in_list, value, operator.ge) + + def unique(in_list): """ Extract unique list elements (without changing the order like set() does) -- GitLab