How To Write A Function That Return The Value In A Nested List At The Index Path In Python?
Solution 1:
Your function currently doesn't interact with the passed lst in any way. What it does now is to first check whether the passed index_path has more than one element. Your current test of index_path is [0], which does not have more than one element. Your function then takes the else branch and returns the first element of index_path, which is 0.
To fix this, make your function refer to lst in the appropriate places.
def recursive_index(lst,index_path):
if index_path:
return recursive_index(lst[index_path[0]],index_path[1:])
else:
return lst
If there are indices left to use, it will use the first available one to index lst, then pass that and the rest of the index_path to the function in a recursive call. When there are no more indices left, it returns whatever's left of lst.
Start a call with [1, [2], 3], [0]:
[0] is not empty, so take the first element of that and use it as an index. Pass along the rest of the indices.
[1, [2], 3][0] is 1, which we pass. The rest of the indices is [], which we pass.
[] is empty, so return the passed lst, which was 1.
>>> recursive_index([1,[2],3], [0])
1A slightly larger test:
>>> recursive_index([1,[2, [1]], 3], [1])
[2, [1]]
>>> recursive_index([1,[2, [1]], 3], [1,0])
2
>>> recursive_index([1,[2, [1]], 3], [1,1])
[1]
>>> recursive_index([1,[2, [1]], 3], [1,1,0])
1
Post a Comment for "How To Write A Function That Return The Value In A Nested List At The Index Path In Python?"