I won’t die on the hill of Python-style comprehensions. I think that there’s a case to be made for them in some scenarios, but the downsides are obvious.
That said, a lack of readability is obviously not a goal for its own sake; rather, it’s more of an acceptable trade-off in certain niches. I still think that input_token_map = {word: index for index, word in enumerate(input_words)}
is both more efficient (conceptually, not computationally) and, indeed, more readable than either of your reduce(into:_:)
suggestions.
It sounds like you don’t think that the added benefits of comprehensions are sufficient to warrant introducing new syntax. I can respect that position.