Сделайте словарь из списка с Python [дубликат]

Этот вопрос уже имеет ответ здесь:

Я должен преобразовать список в словарь следующим образом. Нечетные элементы имеют ключ, и элементы четного числа имеют значение.

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))

кажется, работает

27
задан Aran-Fey 4 September 2018 в 13:01
поделиться

5 ответов

dict(x[i:i+2] for i in range(0, len(x), 2))
37
ответ дан 28 November 2019 в 04:25
поделиться
dict(zip(*[iter(val_)] * 2))
11
ответ дан 28 November 2019 в 04:25
поделиться
>>> x=(1,'a',2,'b',3,'c')
>>> dict(zip(x[::2],x[1::2]))
{1: 'a', 2: 'b', 3: 'c'}
11
ответ дан 28 November 2019 в 04:25
поделиться

Вот несколько способов для 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'}
12
ответ дан 28 November 2019 в 04:25
поделиться
x = (1,'a',2,'b',3,'c') 
d = dict(x[n:n+2] for n in xrange(0, len(x), 2))
print d
4
ответ дан 28 November 2019 в 04:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: