Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сформировать словарь вида 
:(
    Опции темы
senkler
Дата 21.1.2011, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.10.2010

Репутация: нет
Всего: нет



Добрый день.

Я получаю списки вида 

список1 = [data,data,data,data,,,,,data+n]

списко2 = [(data,data,data,data,,,,,data+n),(data,data,data,data,,,,,data+n),(data,data,data,data,,,,,data+n),....]

длинна данных из списка1 совпадают с длинной кортежа списка2

Как пример:

список1 = [12 элементов]
список2 = [(12 элементов),(12 элементов),(12 элементов),....]

Задача преобразовать его в следующий вид 

'data0':
[
    { 'field_name' : 'ID', 'field_value' : 1 },
    { 'field_name' : 'ID-2', 'field_value' : 'r43eq1' },
],
'data1': [{},{}], ... 'dataN' : [{},{}]

data0 = 0 кортежу из списка2
где field_name - я получаю из списка1
field_value = data из приведенного списка2 

Кто знает , как решить задачу ?
PM MAIL   Вверх
dipsy
Дата 31.1.2011, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 13.1.2005
Где: Нижний Новгород

Репутация: нет
Всего: нет



Код

s1 = ["q", "w", "e"]
s2 = [[1,2,3],[4,5,6]]
lmb = lambda x: 'data%d' %x
print dict((lmb(j), [{"field_name" : s1[i], "field_value": s2[j][i]}
        for i in xrange(len(s1))]) for j in xrange(len(s2)))

результат выполнения:
Код

{'data1': [{'field_value': 4, 'field_name': 'q'}, {'field_value': 5, 'field_name': 'w'}, {'field_value': 6, 'field_name': 'e'}], 'data0': [{'field_value': 1, 'field_name': 'q'}, {'field_value': 2, 'field_name': 'w'}, {'field_value': 3, 'field_name': 'e'}]}

PM MAIL WWW   Вверх
senkler
Дата 31.1.2011, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.10.2010

Репутация: нет
Всего: нет



dipsy
Спасибо за потраченное время и интересное решение. 

Мое решение.
Код

globaList = list()
                for item in range(len(list_data)):
                        struct = {}
                        lst = []
                        for j in range(len(list_data[item])):
                                
                                if list_data[item] != None:
                                        if splits_list_table_name[j] != None:
                                                if list_data[item][j] != None:
                                                        lst.append({'field_name' : splits_list_table_name[j], 'field_value' : self.list_data[item][j]})
                                struct['data'] = lst
                                struct['documents'] = []
                                
                        globaList.append(struct)
                        
                res = { 'columns' : columns, 'table' : globaList }


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0934 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.