Instead of the list comprehension you could also index lut as seen here:
lut = torch.randn(64, 7281)
idx = torch.randint(0, 7281, (64, 943))

res = torch.stack([l_[i_] for l_, i_ in zip(lut, idx)])

out = lut[torch.arange(lut.size(0)).unsqueeze(1), idx]
print((out == res).all())
> tensor(True)