На какой URL JSTL я должен сослаться в своем JSPs? [дубликат]

b = dict(zip(a[::2], a[1::2]))

Если a велико, вы, вероятно, захотите сделать что-то вроде следующего, которое не делает никаких временных списков, подобных приведенным выше.

from itertools import izip
i = iter(a)
b = dict(izip(i, i))

В Python 3 вы может также использовать понимание dict, но по иронии судьбы я думаю, что самый простой способ сделать это будет с range() и len(), который обычно будет запахом кода.

b = {a[i]: a[i+1] for i in range(0, len(a), 2)}

Итак, iter()/izip() по-прежнему, вероятно, самый Pythonic в Python 3, хотя, как отмечает EOL в комментарии, zip() уже ленив в Python 3, поэтому вам не нужно izip().

i = iter(a)
b = dict(zip(i, i))

Если вы хотите его на одной строке, вам придется обмануть и использовать точку с запятой. ; -)

7
задан BalusC 23 January 2016 в 13:12
поделиться