Форум сайта python.su
0
Есть список
a = [1,2,3,4]
{1:2},{3:4}
Отредактировано Jeck290 (Май 18, 2015 23:24:44)
Офлайн
6
Вот так например (корректно будет работать при чётном количестве элементов, иначе проигнорирует последний):
def list_to_dicts(l): result = [] for k,v in zip(l[::2], l[1::2]): result.append({k:v}) return result
def list_to_dicts(l): for k,v in zip(l[::2], l[1::2]): yield {k:v}
Отредактировано giveback (Май 19, 2015 02:11:37)
Офлайн
568
Для разбивки списка lst на куски по n элементов есть снипет
zip(*[iter(lst)]*n)
a = [1, 2, 3, 4, 5, 6] print dict(zip(*[iter(a)]*2))
Офлайн
0
Спасибо всем )), вечером ломал голову.
FishHook
Вариант giveback будет попроще ), что это за звездочки в начале списка ?
Офлайн
568
Офлайн
186
[ {k:v} for k,v in dict(zip(filter(lambda x: x%2, a), filter(lambda x: not x%2, a))).items() ]
[ {k:v} for k,v in dict(zip(a[::2], a[1::2])).items() ]
Отредактировано Rodegast (Май 19, 2015 12:39:35)
Офлайн
857
Jeck290Зачем получать много маленьких словарей?
Нужно получить много маленьких словарей
Офлайн
0
Да парсер пишу, а там проблема , контент на странице имеет разную структуру , например почти все заглавления и строки оформлены тегом <p> и нужно как то выбрать заглавление и контент, обычно первым в списке идет заглавление а вторым контент )) , может я все усложняю но как парсить меняющиеся данные одним шаблоном я не знаю ))
Офлайн
857
Jeck290Обычно это представляют списком списков. Словари не сохраняют порядок элементов.
может я все усложняю
Отредактировано py.user.next (Май 20, 2015 00:34:38)
Офлайн
0
ну как бы в списке помещаются маленькие словари, поле и его значение )) можно конечно и список в списки засунуть но это уже другая история
Офлайн