Для решения, отличного от numpy
, вы можете создать dict
, отображающее индексы от x_glob
до соответствующих значений, а затем использовать понимание списка с помощью метода get
этого диктанта:
>>> x_glob = [[0, 2], [85, 30]]
>>> x = [-10, 0, 77, 54]
>>> d = dict(zip(*x_glob))
>>> [d.get(i, n) for i, n in enumerate(x)]
[85, 0, 30, 54]
Или используя map
с несколькими списками параметров (или без zip
, используя itertools.starmap
):
>>> list(map(d.get, *zip(*enumerate(x))))
[85, 0, 30, 54]