для вашего отредактированного вопроса, вы хотите
[i * j for j, i in enumerate(S)]
Python не имеет ++
, потому что он проводит четкое различие между утверждениями и выражениями. использовать
[(i + 40) * i for i in xrange(60)]
другой способ сделать это -
[i * j for i, j in enumerate(xrange(60), start=40)]
и еще один способ
[i * j for i, j in zip(xrange(40, 100), xrange(60))]
Я думаю, что первый - лучший способ сделать это, потому что он сокращает количество вызовов функций и является наиболее читабельным.
Также, если вы не знаете, что вам абсолютно необходим список, используйте выражение генератора
((i + 40) * i for i in xrange(60))
Это позволит вам обрабатывать результаты по одному и никогда не сохранять весь список в памяти. Вы можете передать выражение генератора в такие вещи, как sum
, max
, min
и большинство других встроенных функций.