If you have a list in python, and want to extract elements at indices 1, 2 and 5 into a new list, how would you do this?
This is how I did it, but I'm not very satisfied:
>>> a [10, 11, 12, 13, 14, 15] >>> [x[1] for x in enumerate(a) if x[0] in [1,2,5]] [11, 12, 15]
Is there a better way?
More in general, given a tuple of indices, how would you use this tuple to extract the corresponding elements from a list, even with duplication (e.g. tuple (1,1,2,1,5)
produces [11,11,12,11,15]
).
Method #1 : Using loop + set() In this, we just insert all the elements in set and then compare each element's existence in actual list. If it's the second occurrence or more, then index is added in result list.
Perhaps use this:
[a[i] for i in (1,2,5)] # [11, 12, 15]
I think you're looking for this:
elements = [10, 11, 12, 13, 14, 15] indices = (1,1,2,1,5) result_list = [elements[i] for i in indices]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With