Revision 3816
Added by Aaron Marcuse-Kubitza over 12 years ago
lib/util.py | ||
---|---|---|
127 | 127 |
|
128 | 128 |
def list_subset(list_, idxs, default=subset_skip): |
129 | 129 |
''' |
130 |
@param idxs list|None If None, returns entire list |
|
130 |
@param idxs list|None If None, returns entire list. An index of '+' appends |
|
131 |
the rest of the list. |
|
131 | 132 |
@param default The value to use for invalid indexes, or subset_skip to leave |
132 | 133 |
them out of the returned list |
133 | 134 |
''' |
134 | 135 |
if idxs == None: return list_ |
135 | 136 |
subset = [] |
136 |
for idx in idxs: |
|
137 |
value = list_get(list_, idx, default) |
|
138 |
if value is not subset_skip: subset.append(value) |
|
137 |
for i, idx in enumerate(idxs): |
|
138 |
if idx == '+': |
|
139 |
prev_idxs = idxs[:i] # excluding the current value, which is '+' |
|
140 |
subset += list_[max(prev_idxs)+1:] |
|
141 |
else: |
|
142 |
value = list_get(list_, idx, default) |
|
143 |
if value is not subset_skip: subset.append(value) |
|
139 | 144 |
return subset |
140 | 145 |
|
141 | 146 |
def list_eq_is(list0, list1): |
Also available in: Unified diff
util.py: list_subset(): Made an index of '+' append the rest of the list