Ответ 1
dict(x[i:i+2] for i in range(0, len(x), 2))
Мне нужно преобразовать список в словарь следующим образом. Нечетные элементы имеют ключ, и даже числовые элементы имеют значение.
x = (1,'a',2,'b',3,'c') -> {1: 'a', 2: 'b', 3: 'c'}
def set(self, val_): i = 0 for val in val_: if i == 0: i = 1 key = val else: i = 0 self.dict[key] = val
Лучший способ получить те же результаты?
i = iter(k) print dict(zip(i,i))
похоже, работает
dict(x[i:i+2] for i in range(0, len(x), 2))
Ниже приведено несколько способов использования Python3 с использованием понятий dict
>>> x = (1,'a',2,'b',3,'c')
>>> {k:v for k,v in zip(*[iter(x)]*2)}
{1: 'a', 2: 'b', 3: 'c'}
>>> {x[i]:x[i+1] for i in range(0,len(x),2)}
{1: 'a', 2: 'b', 3: 'c'}
dict(zip(*[iter(val_)] * 2))
>>> x=(1,'a',2,'b',3,'c')
>>> dict(zip(x[::2],x[1::2]))
{1: 'a', 2: 'b', 3: 'c'}
x = (1,'a',2,'b',3,'c')
d = dict(x[n:n+2] for n in xrange(0, len(x), 2))
print d