Добавление элемента из 2-x списков в словарь

goshif

Способ добавления элементов - need: naprmer: a= [ a1, a2, a3] b = [b1,b2, b2] ----> bac = [a1:b1, a2,b2, a3:b2] Через update, bac[..] = ' ' , dict.fromkeys не предлагать - тк работает, но мне нужен еще один способ!!!!C уважением, me
9 ответов

goshif

a= [ 'a1', 'a2', 'a3']
b = ['b1','b2', 'b2']
print(list(map(lambda x:dict([x]),zip(a,b))))
Так правильнее будет:
print(list(map(lambda x:dict((x,)),zip(a,b))))


goshif

sigmov, а зачем тут мап и лямбда? Единственный и самый логичный способ -
dict(zip(a,b))
.


goshif

thx, все за все три


goshif

а зачем тут мап и лямбда? Единственный и самый логичный способ
Судя по записи:
bac = [a1:b1, a2,b2, a3:b2]
В итоге должен получится список словарей ))) Я понимаю - извращение, но "Каждый ***** как хочет"((С) Сол Гудман)Вот идеальный вариант
print(list(dict({k:v}) for k,v in zip(a,b)))
thx, все за все три
Дак че тебе в итоге то надо получить - список кортежей? Словарь? Список словарей?


goshif

словарь из 2-x списков и если разные размеры списков то поставить на место недостающих 'ignore'я туплю тк a = [a1, a2, a3, a4] b = [b1,b2,b3] или наоборотвсе дело как раз в наполнении


goshif

словарь из 2-x списков и если разные размеры списков то поставить на место недостающих 'ignore'
Это будет возможно только если первый список(ключей) не короче чем на 1 чем второй список(значений) иначе возникнет неоднозначность ключа А вообще тогда так
a = list('123')
b = list('abcde')
dc = dict(zip(a + [None]*(len(b) - len(a)), b + [None]*(len(a) - len(b))))
print(dc)


goshif

Пойду курить то как в зип эти параметры передаются...


goshif

dict(itertools.zip_longest(a, b))


goshif

всем спасибо