Как сохранить значения координат относительно его id в Python

Я новичок в Python и пишу сценарий, в котором мы вводим некоторые данные в алгоритм, и он возвращает обнаруженный идентификатор данных вместе со значениями координат (x, y). Алгоритм продолжает возвращать обновленные значения координат до тех пор, пока данные не появятся, и как только данные исчезнут, он ничего не возвращает или какие-либо другие координаты данных.

Ниже приведен код:

data_dict = data_fetch.update(data)

возвращенный data_dict - это ordered dict, к которому я могу получить доступ, как показано ниже:

for (data_id, data_coord) in data_dict.items():
    print(data_id)    # to print the id of the data
    print(data_coord) # to print the data coordinates

output:0{634, 972}

Мне нужно сохранить значения координат для каждого идентификатора в dict или в списке, чтобы, когда идентификатор данных больше не присутствует, я мог получить доступ ко всем значениям координат, то есть значениям x и y идентификатора данных, и построить его на графике, используя matplotlib.

Вы можете использовать json в качестве формата для сохранения ваших данных; очень просто сохранить Python dict как json. Но есть гораздо больше форматов, которые могут подойти для вашего случая; искать вокруг.

9769953 26.11.2018 14:59
points[data_id] = data_coord
Filip Młynarski 26.11.2018 15:00
Почему в 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
2
411
1

Ответы 1

Вы можете update словарь, чтобы вы могли сделать это:

from collections import OrderedDict
data_dict = OrderedDict()

# then do this as many times as required:
data_dict.update(data_fetch.update(data))

Возможно, вам не понадобится использовать OrderedDict, если порядок для вас не важен.

Если одни и те же координаты продолжают обновляться и вам нужны все значения, попробуйте следующее:

from collections import defaultdict
stored_values = defaultdict(list)

new_values = data_fetch.update(data)
for key,value in new_values.items():
    stored_values[key].append(value)

Каждый ключ (id) будет хранить список всех координат.

Спасибо. Я пробовал это, и это продолжает обновлять data_dict, а не добавлять. Мне нужно сохранить все значения.

Abhinav Rawat 26.11.2018 15:29

Значит, он продолжает обновлять координаты для одного и того же идентификатора, и вам нужно сохранить ВСЕ эти разные значения?

T Burgis 26.11.2018 15:32

да, он продолжает обновлять одно и то же значение координаты идентификатора, и мне нужно сохранить все разные значения.

Abhinav Rawat 26.11.2018 15:34

Добавлю к своему ответу.

T Burgis 26.11.2018 15:37

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