Как добавить ключи к значениям в списке в Python

У меня есть список значений float xy = [412.1587, 14.12, 4112.7, 14.0], а также список ключей keys_list = ['x','y'] Ожидаемый вывод a = [{'x': 412.1587, 'y': 14.12}, {'x': 4112.7, 'y': 14.0}]

Спасибо за помощь!

предположим, что значения xy = test_values и keys_list = test_keys

output = {test_keys[i]: test_values[i] for i in range(len(test_keys))}

Я думаю, вы имеете в виду словарь в качестве выходного файла. Вы можете объединить два списка в словарь, используя следующий процесс.

keys_list = ['x','y']
values = [412.1587, 14.12, 4112.7, 14.0]
output = dict(zip(keys_list, values))

Но я думаю, что наличие списков одинаковой длины имеет больше смысла для такого рода решения.

Поскольку запрошенный вывод синтаксически неверен, я предлагаю другое решение с несколько похожим выводом, но заменяя 'x' и 'y' уникальными ключами:

xy = [412.1587, 14.12, 4112.7, 14.0]
keys_list = ['x', 'y']

a = [{f"{keys_list[i % len(keys_list)]}{int(i / 2)}": v} for i, v in enumerate(xy)]

print(a)

Вывод

{'x0': 412.1587, 'y0': 14.12, 'x1': 4112.7, 'y1': 14.0}

EDIT Прочитав ваши комментарии, вы уточнили, что вам нужны пары координат в списке, так что вот обновленная функция. Она также будет работать, если вы хотите добавить третье измерение ('z') в набор ключей.

pairs = []
for i in range(0, len(xy), len(keys_list)):
    d = {v: xy[i + n] for n, v in enumerate(keys_list)}
    pairs.append(d)

print(pairs)

Вывод

[{'x': 412.1587, 'y': 14.12}, {'x': 4112.7, 'y': 14.0}]
Вернуться на верх