Как добавить ключи к значениям в списке в 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}]