Преобразование массива списков в массив словаря

У меня есть данные следующим образом

{"array": [[1288.1639933233453], [1255.1777295971826], 
[1250.1075681742996], [1283.9962801780075], [1297.4411412000093]]}

Я хочу преобразовать вышеуказанные данные следующим образом

[{"value": 1288.1639933233453},
{"value": 1255.1777295971826},
{"value": 1250.1075681742996},
{"value": 1283.9962801780075},
{"value": 1297.4411412000093}]

Почему бы и нет {'value:'[1288.1639933233453,1255.1777295971826...]}?

Devesh Kumar Singh 30.05.2019 13:45
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
60
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Ответ принят как подходящий
d = {"array": [[1288.1639933233453], [1255.1777295971826],
               [1250.1075681742996], [1283.9962801780075], [1297.4411412000093]]}
d = [{"value": i[0]} for i in d["array"]]
print(d)

выход:

[{'value': 1288.1639933233453}, {'value': 1255.1777295971826}, {'value': 1250.1075681742996}, {'value': 1283.9962801780075}, {'value': 1297.4411412000093}]

Спасибо. Было полезно.

Anju Devassy 30.05.2019 15:14
x = {"array": [[1288.1639933233453], [1255.1777295971826], 
[1250.1075681742996], [1283.9962801780075], [1297.4411412000093]]}
y = [{'value' : i[0]} for i in x['array']]
print(y)
d1 = {"array": [[1288.1639933233453], [1255.1777295971826], [1250.1075681742996], [1283.9962801780075], [1297.4411412000093]]}
vals = d1["array"]
l = []
for val in vals:
    l.append({"value": val[0]})
print(l)

[{'value': 1288.1639933233453},
 {'value': 1255.1777295971826},
 {'value': 1250.1075681742996},
 {'value': 1283.9962801780075},
 {'value': 1297.4411412000093}]

используя lambda

a = {"array": [[1288.1639933233453], [1255.1777295971826], 
[1250.1075681742996], [1283.9962801780075], [1297.4411412000093]]}

res = list(map(lambda x:{'value':x[0]},a['array']))

Вы не упомянули, что списки, содержащие список, всегда будут иметь 1 элемент, поэтому я думаю, что будет лучше перебирать все списки, включая понимание списка, чтобы не пропустить значения:

d = {"array": [[1288.1639933233453], [1255.1777295971826], [1250.1075681742996], [1283.9962801780075], [1297.4411412000093]]}

r = [{"value": v} for e in d["array"] for v in e]

Выход:

[{'value': 1288.1639933233453}, {'value': 1255.1777295971826}, {'value': 1250.1075681742996}, {'value': 1283.9962801780075}, {'value': 1297.4411412000093}]

Вы можете использовать этот код:

myDic = {"array": [[1288.1639933233453], [1255.1777295971826], 
[1250.1075681742996], [1283.9962801780075], [1297.4411412000093]]}

myList = []

for i in myDic['array']:
    value = {'value':i[0]}
    myList.append(value)

print(myList)

ИЛИ

Используя питонический метод :)

myDic = {"array": [[1288.1639933233453], [1255.1777295971826], 
[1250.1075681742996], [1283.9962801780075], [1297.4411412000093]]}

myList = [{'value':i[0]} for i in myDic['array']]

print(myList)

Ты можешь это сделать:

values = {"array": [[1288.1639933233453], [1255.1777295971826], 
[1250.1075681742996], [1283.9962801780075], [1297.4411412000093]]}

values = [{"value: i[0]} for i in values["array"]]

Другие вопросы по теме