Структура данных Python: SQL, XML или .py файл

Вы можете сначала создать set имен, а затем просто сэмплировать:

names_set = set(Names)  # only unique values in a set
Names1 = random.sample(names_set, 3)

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

5
задан lastlee 13 January 2009 в 07:10
поделиться

6 ответов

Исходный метод Python абсолютно управляет.

XML не спешит анализировать и относительно трудно читать людьми. Вот почему компании как Altova находятся в бизнесе - XML не приятно отредактировать.

Источник Python db = {"a": [1, 2], "b": ...}

  1. Быстро проанализировать.

  2. Легкий читать людьми.

Если у Вас есть программы, которые читают и пишут гигантские словари, используют pprint для записи так, чтобы Вы получили приятно отформатированный вывод. Что-то более легкое для чтения.

Если Вы волнуетесь по поводу мобильности, рассматриваете YAML (или JSON) для сериализации объекта. Они анализируют быстро также и очень, намного легче читать, чем XML.

6
ответ дан 14 December 2019 в 01:19
поделиться

Я рассмотрел бы использование одной из многих библиотек графика, доступных для Python (например, графика Python)

2
ответ дан 14 December 2019 в 01:19
поделиться

XML действительно ориентирован на древовидные структуры и очень подробный. Можно посмотреть на RDF для способов описать график в XML, но он все еще имеет другие недостатки, например, время, чтобы считать, проанализировать, и инстанцировать 500k + объекты и количество используемого файлового пространства.

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

Я попробовал бы Python, солящий сначала, чтобы видеть, удовлетворяет ли он Ваши потребности. Это, вероятно, будет самым компактным и самым быстрым, чтобы читать в и инстанцировать всех объектов.

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

0
ответ дан 14 December 2019 в 01:19
поделиться

Если Вы будете хранить свои данные на XML-файле, то будет легче изменить (т.е. блокнот использования...), но необходимо взять в учетной записи, что чтение и парсинг всего этого объема данных от XML-файла являются напряженным режимом. Используя базу данных SQL (возможно, PostGres) сделает choiche еще немного производительный, DMBS более оптимизированы, чем прямое чтение/парсинг файловой системы. Если Вы храните все свои данные в некоторой структуре Python на отдельном файле, Вы можете, чем иметь преимущество компиляции байт-кода (.pyc), который не окрыляет в вычислительных термах, но допускает более быструю загрузку (ведьма - то, что Вы хотите). Я выбрал бы последний.

0
ответ дан 14 December 2019 в 01:19
поделиться

Необходимо указать проблему немного лучше. Я сделаю несколько предположений: 1) Ваши данные статичны, и Вы просто хотите искать их, 2) у Вас есть достаточно памяти для хранения его.

Если скорость запуска приложения не является критической, формат данных ваше дело, пока можно получить его в память Python. Используйте простые типы данных (dicts, списки, строки), чтобы хранить данные, не график XML, если Вы хотите получить доступ к ним быстро. Вы могли бы полагать, что запись легкого собственного класса выразила узлы и ссылки хранилища на другие узлы в dict или массиве.

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

Если с другой стороны, Ваши данные являются слишком большими для умещений в памяти, или Вы хотите смочь изменить их постоянно, Вы могли использовать SQL для устройства хранения данных (или внешний сервер или база данных SQLite) или ZODB (объектная база данных Python).

1
ответ дан 14 December 2019 в 01:19
поделиться

Подход файла Python, конечно, будет самым быстрым, если у Вас будет способ поддержать файл.

0
ответ дан 14 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: